mysql 5.7 mysql_install_db_【MySQL】MySQL 5.7 初探

写在前面

MySQL 5.7版本于2015年10月份左右 GA,至今已经半年多了,但自己一直没有时间来follow MySQL 5.7 新的特性,作为MySQL DBA 实在汗颜,以后会花时间来研究5.7 版本的特性并针对部分优化功能做出压力测试。本文记录安装MySQL 5.7 ,(即使参考了官方的文档)整个过程并非之前的版本那么顺利,算是一个尝鲜,供大家参考。

MySQL  5.7 安装

本文采用二进制源码包安装

获取安装包

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar

wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar

解压缩

tar -xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar -C /opt/

cd /opt

ls -s mysql-5.7.12-linux-glibc2.5-x86_64 mysql

mkdir -p /srv/my3306/{data,run,tmp,log}

注意官方提示

5.7.6版本之前可以使用mysql_install_db 来初始化安装,但是5.7.6之后的版本已经废弃了该初始化方式,推荐使用-- initialize 参数完成数据库初始化的操作。

root@rac4:~# >/opt/mysql/bin/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/srv/my3306/data/

2016-05-10 05:34:13 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

2016-05-10 05:34:14 [ERROR]   Child process: /opt/mysql/bin/mysqldterminated prematurely with errno= 32

2016-05-10 05:34:14 [ERROR]   Failed to execute /opt/mysql/bin/mysqld --bootstrap --datadir=/srv/my3306/data --lc-messages-dir=/opt/mysql/share --lc-messages=en_US --basedir=/opt/mysql

-- server log begin --

2016-05-09T21:34:13.595439Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

2016-05-09T21:34:13.596070Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)

2016-05-09T21:34:13.596075Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)

-- server log end --

初始化操作

fd975412125709afcff0a2ccec9e30cd.png

安装和配置ssl

c20145a465c8610edfaee5f6bd79ed50.png

需要提示各位的是

MySQL认为在5.7版本之前存在安全问题,存在比较大的隐患,如 MySQL数据库默认安装的用户密码为空,所有用户拥有对于MySQL默认安装test数据库的访问权限 。MySQL 5.7中的root用户的密码不再是空,而是在安装时随机产生一个密码,如第一张图中的红色注释.而且官方已经删除了test数据库,默认安装完后是没有test数据库的。更为重要的是,MySQL 5.7版本提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。 关于ssl 的更多知识和性能测试请移步《MySQL的SSL 加密连接与性能开销》

运行完命令mysql_ssl_rsa_setup后会发现datadir 目录下会多出pem结尾的文件,而这些文件就是开启SSL连接所需要的文件:

91bfcb8535cb5559895a7c4dd76dce45.png

启动MySQL

root@rac4:/opt/mysql# >bin/mysqld_safe --user=mysql --datadir=/srv/my3306/data  --basedir=/opt/mysql

2016-05-09T22:42:12.101739Z mysqld_safe Logging to '/srv/my3306/data/rac4.err'.

2016-05-09T22:42:12.141157Z mysqld_safe Starting mysqld daemon with databases from /srv/my3306/data

登陆数据库

e113cb54988609f1711098112a186851.png

小结

实际上初始化安装之后 数据库里面仅有root@'localhost' 和mysql.sys@'localhost' 两个用户,并且第一次需要重置root 密码。因为这个是第一次安装,在登陆数据库的便利性方面没有做过多研究。但是可以感受到新版本的数据库在安全性上的考量。

另外在启动的时候也遇到了 指定 --defaults-file 识别不了的问题,这个待解决。

root@rac4:/opt/mysql# >./bin/mysqld_safe --user=mysql --defaults-file=/srv/my3306/my.cnf &

[1] 11326

root@rac4:/opt/mysql# >./bin/mysqld_safe: line 541: /usr/local/mysql/data/mysqld_safe.pid: No such file or directory

awk: (FILENAME=- FNR=1) warning: error writing standard output (Broken pipe)

2016-05-09T22:27:32.088016Z mysqld_safe Logging to '/usr/local/mysql/data/rac4.err'.

touch: cannot touch `/usr/local/mysql/data/rac4.err': No such file or directory

chmod: cannot access `/usr/local/mysql/data/rac4.err': No such file or directory

touch: cannot touch `/usr/local/mysql/data/rac4.err': No such file or directory

chown: cannot access `/usr/local/mysql/data/rac4.err': No such file or directory

2016-05-09T22:27:32.140094Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

针对这个问题 ,终于解决了,原因在于官方mysqld-safe 介绍

d08ff0ca5daad9066d0aabcf3b6334b0.png

使用./bin/mysqld_safe--defaults-file=/srv/my3306/my.cnf--user=mysql&即可解决。

5.7 版本的相比于5.6 在安装过程和使用方式上存在相当大的差异,作为老司机也在坑里面好久才爬出来。看了本文之后,希望对第一次使用二进制安装的朋友有所帮助,路虽崎岖 (PS 也是我第一次手比较生),但是看官方文档和其他小伙伴对5.7 性能和功能的介绍,还是需要比较深入的探究5.7 版本特性,多读官方文档,为以后在生产环境落地做预研。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值