CentOS安装MySQL(rpm方式)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

    首先你需要下载MySQL安装包,下载地址如下:

       http://ftp.ntu.edu.tw/pub/MySQL/Downloads/

       这里我以MySQL5.6.26-1.el7版本为例,其中安装包里的x86_64表示是x86架构的64位CPU,其中必须下载的两个安装包为:

       MySQL-server-5.6.26-1.el7.x86_64.rpm
       MySQL-client-5.6.26-1.el7.x86_64.rpm

       其他安装包为可选的,当你需要该功能时,再单独补充安装.不过这里我建议你下载bundle.tar结尾的压缩包文件,因为里面已经包括了MySQL所有安装组件。

 

       下载完成后,可以通过rz命令将其上传至你的CentOS服务器,这里我以上传到CentOS的/opt目录下:

 上传完成后你需要使用tar命令解压刚刚上传的压缩包文件,执行命令如下:

Shell代码   收藏代码
  1. tar -xvf MySQL-5.6.16-1.el6.x86_64.rpm-bundle.tar  

 

 

首先你需要检查是否已经安装了MySQL:

Shell代码   收藏代码
  1. rpm -qa | grep mysql  

如果已经安装了MySQL,则通过如下命令进行卸载:

Shell代码   收藏代码
  1. rpm -e --nodeps mysql   //卸载MySQL,或者用yum remove mysql命名卸载  

然后你需要先安装MySQL-server,执行命令如下:

Shell代码   收藏代码
  1. rpm -ivh MySQL-server-5.6.16-1.el6.x86_64.rpm  

 安装过程如下:

Shell代码   收藏代码
  1. [root@yida opt]# rpm -ivh MySQL-server-5.6.16-1.el6.x86_64.rpm  
  2. Preparing...                ########################################### [100%]  
  3.    1:MySQL-server           ########################################### [100%]  
  4. 2015-11-16 02:00:36 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).  
  5. 2015-11-16 02:00:36 1156 [Note] InnoDB: Using atomics to ref count buffer pool pages  
  6. 2015-11-16 02:00:36 1156 [Note] InnoDB: The InnoDB memory heap is disabled  
  7. 2015-11-16 02:00:36 1156 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins  
  8. 2015-11-16 02:00:36 1156 [Note] InnoDB: Compressed tables use zlib 1.2.3  
  9. 2015-11-16 02:00:36 1156 [Note] InnoDB: Using Linux native AIO  
  10. 2015-11-16 02:00:36 1156 [Note] InnoDB: Not using CPU crc32 instructions  
  11. 2015-11-16 02:00:36 1156 [Note] InnoDB: Initializing buffer pool, size = 128.0M  
  12. 2015-11-16 02:00:36 1156 [Note] InnoDB: Completed initialization of buffer pool  
  13. 2015-11-16 02:00:36 1156 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!  
  14. 2015-11-16 02:00:36 1156 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB  
  15. 2015-11-16 02:00:36 1156 [Note] InnoDB: Database physically writes the file full: wait...  
  16. 2015-11-16 02:00:36 1156 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB  
  17. 2015-11-16 02:00:37 1156 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB  
  18. 2015-11-16 02:00:39 1156 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0  
  19. 2015-11-16 02:00:39 1156 [Warning] InnoDB: New log files created, LSN=45781  
  20. 2015-11-16 02:00:39 1156 [Note] InnoDB: Doublewrite buffer not found: creating new  
  21. 2015-11-16 02:00:39 1156 [Note] InnoDB: Doublewrite buffer created  
  22. 2015-11-16 02:00:39 1156 [Note] InnoDB: 128 rollback segment(s) are active.  
  23. 2015-11-16 02:00:39 1156 [Warning] InnoDB: Creating foreign key constraint system tables.  
  24. 2015-11-16 02:00:39 1156 [Note] InnoDB: Foreign key constraint system tables created  
  25. 2015-11-16 02:00:39 1156 [Note] InnoDB: Creating tablespace and datafile system tables.  
  26. 2015-11-16 02:00:39 1156 [Note] InnoDB: Tablespace and datafile system tables created.  
  27. 2015-11-16 02:00:39 1156 [Note] InnoDB: Waiting for purge to start  
  28. 2015-11-16 02:00:39 1156 [Note] InnoDB: 5.6.16 started; log sequence number 0  
  29. A random root password has been set. You will find it in '/root/.mysql_secret'.  
  30. 2015-11-16 02:00:40 1156 [Note] Binlog end  
  31. 2015-11-16 02:00:40 1156 [Note] InnoDB: FTS optimize thread exiting.  
  32. 2015-11-16 02:00:40 1156 [Note] InnoDB: Starting shutdown...  
  33. 2015-11-16 02:00:41 1156 [Note] InnoDB: Shutdown completed; log sequence number 1625977  
  34.   
  35.   
  36. 2015-11-16 02:00:41 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).  
  37. 2015-11-16 02:00:41 1179 [Note] InnoDB: Using atomics to ref count buffer pool pages  
  38. 2015-11-16 02:00:41 1179 [Note] InnoDB: The InnoDB memory heap is disabled  
  39. 2015-11-16 02:00:41 1179 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins  
  40. 2015-11-16 02:00:41 1179 [Note] InnoDB: Compressed tables use zlib 1.2.3  
  41. 2015-11-16 02:00:41 1179 [Note] InnoDB: Using Linux native AIO  
  42. 2015-11-16 02:00:41 1179 [Note] InnoDB: Not using CPU crc32 instructions  
  43. 2015-11-16 02:00:41 1179 [Note] InnoDB: Initializing buffer pool, size = 128.0M  
  44. 2015-11-16 02:00:41 1179 [Note] InnoDB: Completed initialization of buffer pool  
  45. 2015-11-16 02:00:41 1179 [Note] InnoDB: Highest supported file format is Barracuda.  
  46. 2015-11-16 02:00:41 1179 [Note] InnoDB: 128 rollback segment(s) are active.  
  47. 2015-11-16 02:00:41 1179 [Note] InnoDB: Waiting for purge to start  
  48. 2015-11-16 02:00:41 1179 [Note] InnoDB: 5.6.16 started; log sequence number 1625977  
  49. 2015-11-16 02:00:41 1179 [Note] Binlog end  
  50. 2015-11-16 02:00:41 1179 [Note] InnoDB: FTS optimize thread exiting.  
  51. 2015-11-16 02:00:41 1179 [Note] InnoDB: Starting shutdown...  
  52. 2015-11-16 02:00:43 1179 [Note] InnoDB: Shutdown completed; log sequence number 1625987  
  53.   
  54.   
  55.   
  56.   
  57. A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !  
  58. You will find that password in '/root/.mysql_secret'.  
  59.   
  60. You must change that password on your first connect,  
  61. no other statement but 'SET PASSWORD' will be accepted.  
  62. See the manual for the semantics of the 'password expired' flag.  
  63.   
  64. Also, the account for the anonymous user has been removed.  
  65.   
  66. In addition, you can run:  
  67.   
  68.   /usr/bin/mysql_secure_installation  
  69.   
  70. which will also give you the option of removing the test database.  
  71. This is strongly recommended for production servers.  
  72.   
  73. See the manual for more instructions.  
  74.   
  75. Please report any problems at http://bugs.mysql.com/  
  76.   
  77. The latest information about MySQL is available on the web at  
  78.   
  79.   http://www.mysql.com  
  80.   
  81. Support MySQL by buying support/licenses at http://shop.mysql.com  
  82.   
  83. New default config file was created as /usr/my.cnf and  
  84. will be used by default by the server when you start it.  
  85. You may edit this file to change server settings  

 提示,默认密码已经随机生成并保存在/root/.mysql_secret文件里,如图查看初始密码:

 尝试登录MySQL测试下,如图操作:

 提示无法链接,猜测可能是MySQL服务没有启动,执行如下命令启动MySQL服务:

Shell代码   收藏代码
  1. /etc/init.d/mysql start  


 然后再登录mysql测试,发现这回登录成功了,如图:

 到这一步说明我们的MySQL已经安装成功了.

使用mysql -V查看安装的MySQL版本:

 

通过RPM包安装MySQL默认在/etc目录下并没有创建my.cnf配置文件,我们需要把/usr/share/mysql目录下的my_deafult.cnf配置文件复制到/etc目录下,并更名为my.cnf,执行命令如下:

Shell代码   收藏代码
  1. cp /usr/share/mysql/my-default.cnf /etc/my.cnf  

默认mysql的安装目录如下:

 其中/var/lib/mysql目录就是用于存放mysql的数据文件和日志文件的,即你创建的数据库都是保存在这里,还有mysql数据库的操作日志等.一般建议将这个目录配置到单独的一个自定义目录,因为这个目录需要频繁读写,IO是性能瓶颈,可能需要单独挂载到一个硬盘上.需要在my.cnf里配置我们的自定义数据目录.

 

首先使用mkdir命令创建/data/mysql目录,然后需要把/var/lib/mysql目录下的所有文件全部copy到我们刚刚自定义的/data/mysql目录下,不过操作之前,你需要先通过service mysql stop停掉mysql服务,否则可能会出现文件复制失败:

Shell代码   收藏代码
  1. cp -rap /var/lib/mysql /data/  

 然后需要将/data/mysql目录配置到my.cnf里的datadir处,通过vi /etc/my.cnf命令打开my.cnf配置文件进行编辑,如图:

然后通过service mysql start命名重新启动mysql服务,如果mysql服务启动成功,则表明配置没有问题.

 

然后你需要修改mysql默认编码为UTF-8,防止中文乱码,具体操作如图:

 

然后重新启动mysql服务使其生效:service mysql restart

 

贴个完整的my.cnf配置截图,以便你们对照,

 

 

 

设置MySQL服务开机自动启动:

Shell代码   收藏代码
  1. chkconfig mysql on  

 

修改MySQL Root帐户的密码:

Shell代码   收藏代码
  1. mysqladmin -u root password '123'  

 

删除MySQL系统服务:

Shell代码   收藏代码
  1. chkconfig --del mysql  

 

也许是处于MySQL数据库安全考虑,默认MySQL不允许远程访问的,通过以下命令开启远程链接访问:

Shell代码   收藏代码
  1. mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION  
  2.   
  3. //使修改生效  
  4. mysql>FLUSH PRIVILEGES  

 

最后贴下MySQL的my.cnf配置文件的配置项解释说明,以便大家查阅:

Java代码   收藏代码
  1. [client]    
  2. port = 3306   
  3. socket = /home/mysql/mysql/tmp/mysql.sock    
  4. [mysqld]    
  5. !include /home/mysql/mysql/etc/mysqld.cnf #包含的配置文件 ,把用户名,密码文件单独存放    
  6. port = 3306   
  7. socket = /home/mysql/mysql/tmp/mysql.sock    
  8. pid-file = /longxibendi/mysql/mysql/var/mysql.pid    
  9. basedir = /home/mysql/mysql/    
  10. datadir = /longxibendi/mysql/mysql/var/    
  11. # tmp dir settings    
  12. tmpdir = /home/mysql/mysql/tmp/    
  13. slave-load-tmpdir = /home/mysql/mysql/tmp/    
  14. #当slave 执行 load data infile 时用    
  15. #language = /home/mysql/mysql/share/mysql/english/    
  16. character-sets-dir = /home/mysql/mysql/share/mysql/charsets/    
  17. # skip options    
  18. skip-name-resolve #grant 时,必须使用ip不能使用主机名    
  19. skip-symbolic-links #不能使用连接文件    
  20. skip-external-locking #不使用系统锁定,要使用myisamchk,必须关闭服务器    
  21. skip-slave-start #启动mysql,不启动复制    
  22. #sysdate-is-now    
  23. # res settings    
  24. back_log = 50 #接受队列,对于没建立tcp连接的请求队列放入缓存中,队列大小为back_log,受限制与OS参数    
  25. max_connections = 1000 #最大并发连接数 ,增大该值需要相应增加允许打开的文件描述符数    
  26. max_connect_errors = 10000 #如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞,直到管理员执行flush hosts ; 命令;防止黑客    
  27. #open_files_limit = 10240   
  28. connect-timeout = 10 #连接超时之前的最大秒数,在Linux平台上,该超时也用作等待服务器首次回应的时间    
  29. wait-timeout = 28800 #等待关闭连接的时间    
  30. interactive-timeout = 28800 #关闭连接之前,允许interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话wait_timeout变量被设为会话interactive_timeout变量的值。    
  31. slave-net-timeout = 600 #从服务器也能够处理网络连接中断。但是,只有从服务器超过slave_net_timeout秒没有从主服务器收到数据才通知网络中断    
  32. net_read_timeout = 30 #从服务器读取信息的超时    
  33. net_write_timeout = 60 #从服务器写入信息的超时    
  34. net_retry_count = 10 #如果某个通信端口的读操作中断了,在放弃前重试多次    
  35. net_buffer_length = 16384 #包消息缓冲区初始化为net_buffer_length字节,但需要时可以增长到max_allowed_packet字节    
  36. max_allowed_packet = 64M #    
  37. #table_cache = 512 #所有线程打开的表的数目。增大该值可以增加mysqld需要的文件描述符的数量    
  38. thread_stack = 192K #每个线程的堆栈大小    
  39. thread_cache_size = 20 #线程缓存    
  40. thread_concurrency = 8 #同时运行的线程的数据 此处最好为CPU个数两倍。本机配置为CPU的个数    
  41. # qcache settings    
  42. query_cache_size = 256M #查询缓存大小    
  43. query_cache_limit = 2M #不缓存查询大于该值的结果    
  44. query_cache_min_res_unit = 2K #查询缓存分配的最小块大小    
  45. default settings    
  46. # time zone    
  47. default-time-zone = system #服务器时区    
  48. character-set-server = utf8 #server级别字符集    
  49. default-storage-engine = InnoDB #默认存储    
  50. # tmp & heap    
  51. tmp_table_size = 512M #临时表大小,如果超过该值,则结果放到磁盘中    
  52. max_heap_table_size = 512M #该变量设置MEMORY (HEAP)表可以增长到的最大空间大小    
  53. log-bin = mysql-bin #这些路径相对于datadir    
  54. log-bin-index = mysql-bin.index    
  55. relayrelay-log = relay-log    
  56. relayrelay_log_index = relay-log.index    
  57. # warning & error log    
  58. log-warnings = 1   
  59. log-error = /home/mysql/mysql/log/mysql.err    
  60. log_output = FILE #参数log_output指定了慢查询输出的格式,默认为FILE,你可以将它设为TABLE,然后就可以查询mysql架构下的slow_log表了    
  61. # slow query log    
  62. slow_query_log = 1   
  63. long-query-time = 1 #慢查询时间 超过1秒则为慢查询    
  64. slow_query_log_file = /home/mysql/mysql/log/slow.log    
  65. #log-queries-not-using-indexes    
  66. #log-slow-slave-statements    
  67. general_log = 1   
  68. general_log_file = /home/mysql/mysql/log/mysql.log    
  69. max_binlog_size = 1G   
  70. max_relay_log_size = 1G   
  71. if use auto-ex, set to 0    
  72. relay-log-purge = 1 #当不用中继日志时,删除他们。这个操作有SQL线程完成    
  73. # max binlog keeps days    
  74. expire_logs_days = 30 #超过30天的binlog删除    
  75. binlog_cache_size = 1M #session级别    
  76. # replication    
  77. replicate-wild-ignore-table = mysql.% #复制时忽略数据库及表    
  78. replicate-wild-ignore-table = test.% #复制时忽略数据库及表    
  79. # slave_skip_errors=all   
  80. key_buffer_size = 256M #myisam索引buffer,只有key没有data    
  81. sort_buffer_size = 2M #排序buffer大小;线程级别    
  82. read_buffer_size = 2M #以全表扫描(Sequential Scan)方式扫描数据的buffer大小 ;线程级别    
  83. join_buffer_size = 8M # join buffer 大小;线程级别    
  84. read_rnd_buffer_size = 8M #MyISAM以索引扫描(Random Scan)方式扫描数据的buffer大小 ;线程级别    
  85. bulk_insert_buffer_size = 64M #MyISAM 用在块插入优化中的树缓冲区的大小。注释:这是一个per thread的限制    
  86. myisam_sort_buffer_size = 64M #MyISAM 设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX创建索引或ALTER TABLE过程中排序 MyISAM索引分配的缓冲区    
  87. myisam_max_sort_file_size = 10G #MyISAM 如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出.重建MyISAM索引(在REPAIR TABLE、ALTER TABLE或LOAD DATA INFILE过程中)时,允许MySQL使用的临时文件的最大空间大小。如果文件的大小超过该值,则使用键值缓存创建索引,要慢得多。该值的单位为字节    
  88. myisam_repair_threads = 1 #如果该值大于1,在Repair by sorting过程中并行创建MyISAM表索引(每个索引在自己的线程内)    
  89. myisam_recover = 64K#允许的GROUP_CONCAT()函数结果的最大长度    
  90. transaction_isolation = REPEATABLE-READ    
  91. innodb_file_per_table    
  92. #innodb_status_file = 1   
  93. #innodb_open_files = 2048   
  94. innodb_additional_mem_pool_size = 100M #帧缓存的控制对象需要从此处申请缓存,所以该值与innodb_buffer_pool对应    
  95. innodb_buffer_pool_size = 2G #包括数据页、索引页、插入缓存、锁信息、自适应哈希所以、数据字典信息    
  96. innodb_data_home_dir = /longxibendi/mysql/mysql/var/    
  97. #innodb_data_file_path = ibdata1:1G:autoextend    
  98. innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend #表空间    
  99. innodb_file_io_threads = 4 #io线程数    
  100. innodb_thread_concurrency = 16 #InnoDB试着在InnoDB内保持操作系统线程的数量少于或等于这个参数给出的限制    
  101. innodb_flush_log_at_trx_commit = 1 #每次commit 日志缓存中的数据刷到磁盘中    
  102. innodb_log_buffer_size = 8M #事物日志缓存    
  103. innodb_log_file_size = 500M #事物日志大小    
  104. #innodb_log_file_size =100M   
  105. innodb_log_files_in_group = 2 #两组事物日志    
  106. innodb_log_group_home_dir = /longxibendi/mysql/mysql/var/#日志组    
  107. innodb_max_dirty_pages_pct = 90 #innodb主线程刷新缓存池中的数据,使脏数据比例小于90%    
  108. innodb_lock_wait_timeout = 50 #InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB在它自己的 锁定表中自动检测事务死锁并且回滚事务。InnoDB用LOCK TABLES语句注意到锁定设置。默认值是50秒    
  109. #innodb_flush_method = O_DSYNC   
  110. [mysqldump]    
  111. quick    
  112. max_allowed_packet = 64M   
  113. [mysql]    
  114. disable-auto-rehash #允许通过TAB键提示    
  115. default-character-set = utf8   
  116. connect-timeout = 3   

  转载:http://iamyida.iteye.com/blog/2257132

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
关系型数据库 MySQL Unix
linux优化空间&完全卸载mysql——centos7.9
linux优化空间&完全卸载mysql——centos7.9
33 7
|
22小时前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
2天前
|
安全 关系型数据库 MySQL
|
3天前
|
监控 关系型数据库 MySQL
|
5天前
|
关系型数据库 MySQL 数据安全/隐私保护
安装mysql和远程连接
安装mysql和远程连接
27 0
|
5天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
28 2
|
5天前
|
安全 关系型数据库 Linux
centos7_安装mysql8(局域网访问navicat连接)
centos7_安装mysql8(局域网访问navicat连接)
12 1
|
2天前
|
NoSQL Linux 网络安全
【专栏】如何在 RHEL 8 或者 CentOS 8 上安装 MongoDB?
【4月更文挑战第28天】本文档介绍了如何在RHEL或CentOS 8上安装MongoDB,包括环境准备(系统更新、依赖安装、硬件需求和sudo用户)、导入MongoDB GPG公钥、创建Yum仓库、安装MongoDB社区版,以及后续的基本配置和验证(启动服务、防火墙设置和连接验证)。通过这些步骤,用户可以顺利安装并运行MongoDB,以处理非结构化数据和扩展技术栈。