Install Mysql5.7 on Centos7

环境

  • system: centos 7.2_x64
  • mysql: 5.7.17-1

mysql 5.7 功能改进

security

安装进程只会创建一个root@localhost的root账号,并且生成一个随机密码输出到mysqld.log中。数据库管理员须有root权限查看随机密码并登录重置root账号的密码。安装进程还会创建一个属于mysql.sys库账户(锁定中,无法使用),如需使用需要由root开启并重置密码。安装进程默认不创建匿名账户,test数据库等。
在mysql 5.7.7或之前使用mysql_install_db脚本初始化数据目录,之后推荐使用shell> mysqld --initialize --user=mysqlshell> mysqld --initialize-insecure --user=mysql,其中--initialize-insecure不带有随机密码(登录时使用shell> mysql -u root –skip-password)。
一个常用的初始化命令:
bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data
sql_mode包含了NO_AUTO_CREATE_USER,它会阻止GRANT语句无意中自动创建无密码的新用户

Install mysql 5.7

使用yum方式:

  1. 添加repo文件
1
2
3
4
5
6
7
cat > /etc/yum.repos.d/mysql-community-server.repo << EOF
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
EOF
  1. 安装mysql
    $ sudo yum -y install mysql-community-server

  2. 启动mysql
    $ sudo service myqld start

  3. 获取root密码
    5.7后会生成一个随机密码到/var/log/mysqld.log中,使用grep搜索一下即可。

  4. 登录mysql终端并重置密码

1
mysql> alter user 'root'@'localhost' identified by '123456';

on mysql 5.7.6 之前:

1
2
>mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
>

使用前的一些调整

  • 字符集改为utf8
1
2
3
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
  • 开启慢日志查询
1
2
3
slow_query_log=1
long_query_time=1
log_queries_not_using_indexes=ON

参考