【MySQL】MySQL 5.7 初探

本文涉及的产品
全球加速 GA,每月750个小时 15CU
简介: 写在前面   MySQL 5.7版本于2015年10月份左右 GA,至今已经半年多了,但自己一直没有时间来follow MySQL 5.7 新的特性,作为MySQL DBA 实在汗颜,以后会花时间来研究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 --
初始化操作


安装和配置ssl

需要提示各位的是 

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连接所需要的文件:


启动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

登陆数据库



小结
  实际上初始化安装之后 数据库里面仅有root@'localhost' 和mysql.sys@'localhost' 两个用户,并且第一次需要重置root 密码。因为这个是第一次安装,在登陆数据库的便利性方面没有做过多研究。但是可以感受到新版本的数据库在安全性上的考量。
 另外在启动的时候也遇到了 指定 --defaults-file 识别不了的问题,这个待解决。
  1. root@rac4:/opt/mysql# >./bin/mysqld_safe --user=mysql --defaults-file=/srv/my3306/my.cnf &
  2. [1] 11326
  3. root@rac4:/opt/mysql# >./bin/mysqld_safe: line 541: /usr/local/mysql/data/mysqld_safe.pid: No such file or directory
  4. awk: (FILENAME=- FNR=1) warning: error writing standard output (Broken pipe)
  5. 2016-05-09T22:27:32.088016Z mysqld_safe Logging to '/usr/local/mysql/data/rac4.err'.
  6. touch: cannot touch `/usr/local/mysql/data/rac4.err': No such file or directory
  7. chmod: cannot access `/usr/local/mysql/data/rac4.err': No such file or directory
  8. touch: cannot touch `/usr/local/mysql/data/rac4.err': No such file or directory
  9. chown: cannot access `/usr/local/mysql/data/rac4.err': No such file or directory
  10. 2016-05-09T22:27:32.140094Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
针对这个问题 ,终于解决了,原因在于  官方 mysqld-safe 介绍  

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

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
关系型数据库 MySQL Apache
mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决
mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决
123 0
|
7月前
|
存储 关系型数据库 MySQL
升级宝典!阿里云RDS MySQL助力MySQL5.7升级到8.0
2023年10月,社区MySQL5.7停服。阿里云RDS MySQL对MySQL5.7的服务将进行到2024年10月21日,同时,并将通过有效的方案和大量的升级经验,鼓励和助力广大企业和开发者将MySQL5.7升级到MySQL8.0。
|
SQL JSON 关系型数据库
百度搜索:蓝易云【MySQL5.7和MySQL8.0的区别是什么?】
需要注意的是,升级到新的MySQL版本需要进行充分的测试和评估,以确保应用程序和数据库的兼容性,并选择最适合你的需求和环境的版本。
526 0
百度搜索:蓝易云【MySQL5.7和MySQL8.0的区别是什么?】
|
SQL 关系型数据库 MySQL
MySQL搭建主从备份读写分离(MySQL5.7案例)
MySQL搭建主从备份读写分离(MySQL5.7案例)
177 0
|
4月前
|
关系型数据库 MySQL 数据库连接
绝对干货!从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
绝对干货!从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
249 0
|
5月前
|
关系型数据库 数据库 RDS
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
153 0
|
7月前
|
关系型数据库 MySQL 数据安全/隐私保护
Docker 安装 MySQL5.7 和 MySQL8
Docker 安装 MySQL5.7 和 MySQL8
378 0
|
7月前
|
存储 SQL 关系型数据库
MySQL 5.7和 MySQL8.0 InnoDB auto_increment 初始化的区别
在MySQL 5.7及之前,自动递增计数器只存于内存,重启后需通过查询确定初始值。从MySQL 8.0开始,计数器变化时写入重做日志,检查点时保存至数据字典,确保重启后能基于持久化的最大值初始化,避免查询,增强连续性和一致性。[[MySQL参考手册, 3099页]](https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html)
|
7月前
|
弹性计算 关系型数据库 MySQL
在线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
118 0
|
7月前
|
缓存 关系型数据库 MySQL
mysql5.7 mysql配置文件my.cnf 中 query_cache_min_res_unit 的优化
mysql5.7 mysql配置文件my.cnf 中 query_cache_min_res_unit 的优化
40 0
下一篇
DataWorks