【MySQL】MySQL 5.7 初探

简介: 写在前面   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 版本特性, 多读官方文档 ,为以后在生产环境落地做预研。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
关系型数据库 MySQL Apache
mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决
mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决
11 0
|
3月前
|
存储 关系型数据库 MySQL
升级宝典!阿里云RDS MySQL助力MySQL5.7升级到8.0
2023年10月,社区MySQL5.7停服。阿里云RDS MySQL对MySQL5.7的服务将进行到2024年10月21日,同时,并将通过有效的方案和大量的升级经验,鼓励和助力广大企业和开发者将MySQL5.7升级到MySQL8.0。
|
7月前
|
SQL JSON 关系型数据库
百度搜索:蓝易云【MySQL5.7和MySQL8.0的区别是什么?】
需要注意的是,升级到新的MySQL版本需要进行充分的测试和评估,以确保应用程序和数据库的兼容性,并选择最适合你的需求和环境的版本。
493 0
百度搜索:蓝易云【MySQL5.7和MySQL8.0的区别是什么?】
|
7月前
|
SQL 关系型数据库 MySQL
MySQL搭建主从备份读写分离(MySQL5.7案例)
MySQL搭建主从备份读写分离(MySQL5.7案例)
116 0
|
4月前
|
存储 SQL 关系型数据库
MySQL5.7到8.0的升级迁移!高效的MySQL跨版本迁移技术解读
NineData是一种高效、稳定且易于使用的迁移工具,可帮助用户将MySQL 5.7迁移到MySQL 8.0。由于MySQL 5.7已经结束生命周期并不再获得技术支持,因此迁移至MySQL 8.0是必要的。NineData提供了数据复制功能,包括数据迁移和实时同步,还支持双向复制。与传统迁移方法相比,NineData具有简单易用、数据一致、强劲性能和高可靠性的优势。它提供了完善的观测和干预能力,保障迁移的成功。此外,NineData还提供了对比功能,确保数据的一致性。通过简单的配置过程,用户可以实现自动化的数据迁移。NineData还提供了完善的观测和干预能力,帮助用户追踪迁移进展并诊断和修复
487 3
|
5月前
|
关系型数据库 MySQL Linux
踩坑mysql5.7--Centos下载安装mysql5.7可能遇到的问题
踩坑mysql5.7--Centos下载安装mysql5.7可能遇到的问题
98 0
|
6月前
|
关系型数据库 MySQL 数据库
企业实战(15)阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
企业实战(15)阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
285 0
|
9月前
|
关系型数据库 MySQL Java
Centos7安装jdk8以及mysql5.7以及Navicat连接虚拟机mysql的出错以及解决方法(附mysql下载出错解决办法)
Centos7安装jdk8以及mysql5.7以及Navicat连接虚拟机mysql的出错以及解决方法(附mysql下载出错解决办法)
136 0
|
存储 SQL JSON
mysql8.0 与mysql 5.7 对比
mysql8.0 与mysql 5.7 对比
604 0
|
SQL 关系型数据库 MySQL
【MySQL从入门到精通】【高级篇】(三十)记一次mysql5.7的新特性derived_merge的坑
现有课堂活动评价的需求:教师对学生提交的活动进行评价, 教师可重复评价,即对同一个学生同一个活动进行多次评价,这种情况下需要取最新的那个评价。
431 0
【MySQL从入门到精通】【高级篇】(三十)记一次mysql5.7的新特性derived_merge的坑