1.备份数据库
mysqldump -uroot -P 3306 -p123456 -h172.28.17.26 --all-databases > databases.sql
mysql -uroot -p123456 < databases.sql
2.安装5.7
解压方式安装参考:
centos 安装mysql 5.7.22
https://blog.csdn.net/kohang/article/details/74574848
https://blog.csdn.net/z13615480737/article/details/80019881
2.1 初始化安装
// --initialize-insecure 选项是没有随机密码;
bin/mysqld --initialize-insecure --user=root --basedir=/usr/local/mysql --datadir=/var/lib/mysql
// (可选)如果想要默认的随机密码方式,使用 --initialize 参数,并且记住该随机密码,后面登录要用
mysqld --initialize --user=root --basedir=/usr/local/mysql --datadir=/var/lib/mysql
修改密码
set password=password('123456');
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;
3.导入数据
登陆mysql
set names utf8;
source /data/bak/databases.sql 或者 mysql -uroot -p123456 < databases.sql
4.数据升级
mysql版本从5.1升级到5.7, 除了在性能上还在数据存储和安全性上做了优化, 升级后需要做一些特殊配置以兼容已有的数据库
mysql的bin目录下执行 ./mysql_upgrade -u_root_ -p_123456_
5. 设置sql mode(兼容原来的sql groupby等用法)
1)当前运行中的mysql设置sql_mode
SET @@GLOBAL.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
2)配置文件中设置sql_mode
vi /etc/my.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION