MySQL 5.1升级5.7

版权声明:不为无益之事,何以遣有涯之生。 https://blog.csdn.net/lj402159806/article/details/82494131

备份数据库

mysqldump -u username -h host -P 3306 -p --all-databases > databases.sql

停止mysql服务

sudo service mysqld stop

查看已安装的软件

sudo rpm -qa | grep mysql

卸载旧版mysql

sudo yum remove mysql mysql-*

查看是否有残余mysql

sudo yum list installed | grep mysql

查找分散mysql文件夹(有必要的话进行删除)

find / -name mysql

添加MySQL的yum仓库

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm

查看所有mysql源

yum repolist all | grep mysql

切换成mysql5.7的源版本

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

安装mysql

sudo yum install mysql-community-server

设置utf8编码

sudo vim /etc/my.cnf

在mysqld字段下添加utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

启动mysql服务

sudo service mysqld start

如果启动失败,error日志内报如下错误

[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.

就在/etc/my.cnf添加skip-grant-tables

更新数据表

全新安装mysql5.7可不执行

sudo mysql_upgrade -u root -p

执行mysql配置脚本

全新安装需要先从mysql错误日志中获取临时root密码

grep 'temporary password' /var/log/mysqld.log

期间会问你是否要安装密码安全插件和移除test库和匿名用户和设置root密码

sudo /usr/bin/mysql_secure_installation

如果不想使用复杂密码(开发环境),可以root登录后卸载密码安全插件

mysql> UNINSTALL PLUGIN validate_password;

再执行上面的mysql_secure_installation修改root密码即可

还原数据库(表没有删除的话可不执行)

mysql -u username -h host -p -P 3306 < databases.sql

重设普通用户密码

5.7之后的mysql使用了新的密码验证机制,并且password字段也更改为了authentication_string,因此需要重新设置已存在的用户密码

扫描二维码关注公众号,回复: 3586249 查看本文章
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

重启mysql

sudo service mysqld restart

猜你喜欢

转载自blog.csdn.net/lj402159806/article/details/82494131