但行好事
莫论前程❤

在CentOS 6.5 上安装、配置MySQL 5.7

背景

根据客户要求用系统自带的yum命令来安装MySQL 5.6,下面记录一下整个安装、配置过程。

CentOS 6.5 默认yum只能安装mysql 5.1
安装前要检查机器原来是否安装过mysql,如有安装需要先进行数据备份、清理。

[root@snails ~]# yum list installed | grep mysql
[root@snails ~]# ps -ef|grep mysql
[root@snails ~]# service mysqld stop 
[root@snails ~]# rpm -e mysql-libs --nodeps
[root@snails ~]# yum -y remove mysql mysql-*

设置安装源

[root@snails ~]# wget http://repo.mysql.com/mysql57-community-release-el6-8.noarch.rpm
[root@snails ~]# rpm -ivh mysql57-community-release-el6-8.noarch.rpm
[root@snails ~]# ls -1 /etc/yum.repos.d/mysql-community*
[root@snails ~]# yum repolist all | grep mysql
[root@snails ~]# vi /etc/yum.repos.d/mysql-community.repo
### 将[mysql56-community]的enabled设置为1,[mysql57-community]的enabled设置为0 ### 
[root@snails ~]# yum repolist enabled | grep mysql
mysql-connectors-community MySQL Connectors Community                         21
mysql-tools-community      MySQL Tools Community                              37
mysql56-community          MySQL 5.6 Community Server                        265

注意:
如果不使用5.7 或者其他任何版本,只能有一个是 enabled=1的,其他的都得enabled=0

安装MySQL

[root@snails ~]# yum -y install mysql-server mysql

修改默认配置

[root@snails ~]# mkdir -p /data/mysql
[root@snails ~]# vi /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client] 
socket=/tmp/mysql.sock

启动服务

[root@snails ~]# service mysqld start

检查

[root@snails ~]# netstat -ano |grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      off (0.00/0/0)

进去看一下

mysql -u root 
# 结果不行,报错了 
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

于是又网上找了一圈,解决方法是把登录验证关闭后,设置root密码就可以了。

修改/etc/my.cnf, 在[mysqld]下面加入

skip-grant-tables=1
service mysqld restart 

mysql -u root
这次就可以了

修改root密码

A temporary password is generated for root@localhost: 
[root@snails ~]# mysql -u root
mysql> use mysql;
mysql> update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';
mysql> exit;

开放远程连接

上面的动作完成后,还只能本机登录, 于是执行如下命令

use mysql;
Grant all on *.*  to 'root'@'%' identified by 'root用户的密码' with grant option;
#这里会报密码不符合规则,因为我设置的密码比较简单,所以还要改一下密码规则设置
set global validate_password_policy=0;
然后再执行上面的语句
flush privileges;

贴上我目前运行的配置文件

 [client]  
 port=3306 
 socket=/tmp/mysql.sock 
    
 [mysql] 
 default-character-set=utf8 
    
 [mysqld] 
 user=mysql 
 character-set-server=utf8 
 explicit_defaults_for_timestamp=true 

 #索引和数据缓冲区大小,一般设置物理内存的60%-70%     
 innodb_buffer_pool_size = 1G 
 #缓冲池实例个数,推荐设置4个或8个 
 innodb_buffer_pool_instances = 4 
 #关键参数,0代表大约每秒写入到日志并同步到磁盘,数据库故障会丢失1秒左右事务数据。1为每执行一条SQL后写入到日志并同步到磁盘,I/                                                             O开销大,执行完SQL要等待日志读写,效率低。2代表只把日志写入到系统缓存区,再每秒同步到磁盘,效率很高,如果服务器故障,才会丢失事务数据。对数据安全性要求不是很高的推荐设置2,性能高,修改后效果明显。
 innodb_flush_log_at_trx_commit = 2   
 #默认是共享表空间,共享表空间idbdata文件不断增大,影响一定的I/O性能。推荐开启独立表空间模式,每个表的索引和数据都存在自己独立的表空间中,可以实现单表在不同数据库中移动。 
 innodb_file_per_table = ON 
 #日志缓冲区大小,由于日志最长每秒钟刷新一次,所以一般不用超过16M 
 innodb_log_buffer_size = 8M    

 datadir=/data/mysql 
 socket=/tmp/mysql.sock 

 # 禁止MySQL对外部 连接进行DNS解析
 skip-name-resolve    
 # Disabling symbolic-links is recommended to prevent assorted security risks 
 symbolic-links=0 

 # Recommended in standard MySQL setup 
 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  

 [mysqld_safe] 
 log-error=/var/log/mysqld.log 
 pid-file=/var/run/mysqld/mysqld.pid 
赞(3) 打赏
未经允许不得转载:刘鹏博客 » 在CentOS 6.5 上安装、配置MySQL 5.7
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏