MySQL手动安装RPM及更新版本

系统环境 CentOS7 MySQL版本 5.6.45

因为5.6版本已经是旧版本,所以无法通过yum仓库进行安装。需要手动下载所有RPM包进行手动安装

下载对应版本的包集合

wget https://cdn.mysql.com/archives/mysql-5.6/MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar

tar xf MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar

ls -l
	MySQL-client-5.6.45-1.el7.x86_64.rpm
	MySQL-devel-5.6.45-1.el7.x86_64.rpm
	MySQL-embedded-5.6.45-1.el7.x86_64.rpm
	MySQL-server-5.6.45-1.el7.x86_64.rpm
	MySQL-shared-5.6.45-1.el7.x86_64.rpm
	MySQL-shared-compat-5.6.45-1.el7.x86_64.rpm
	MySQL-test-5.6.45-1.el7.x86_64.rpm

yum remove mariadb-libs

yum localinstall MySQL-devel-5.6.45-1.el7.x86_64.rpm MySQL-client-5.6.45-1.el7.x86_64.rpm MySQL-server-5.6.45-1.el7.x86_64.rpm

# 查看安装时生成的临时密码
cat ~/.mysql_secret


mysql -u root -p
# 必须先改密码
set password = password('new-password');

# 为用户添加所有主机可访问权限
GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

删除5.6,安装5.7

备份5.6的数据和配置文件

cp /etc/my.cnf /jpdata/
mysqldump --all-databases -uroot -p -R --single-transaction -q | gzip > /jpdata/mysql_5.6_all.sql.gz

删除5.6版本

yum remove MySQL-devel MySQL-server MySQL-client

安装5.7版本

tar -xf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar -C mysql5.7.42/

yum localinstall mysql-community-devel-5.7.42-1.el7.x86_64.rpm mysql-community-client-5.7.42-1.el7.x86_64.rpm mysql-community-server-5.7.42-1.el7.x86_64.rpm mysql-community-libs-5.7.42-1.el7.x86_64.rpm mysql-community-common-5.7.42-1.el7.x86_64.rpm 

# 正常情况下可以直接复用5.6的my.cnf和数据目录启动服务。
systemctl status mysqld
systemctl start mysqld

# 如果能正常启动,还需要检查一下表的元数据是否兼容新版本
mysql_upgrade -u root -p --force

错误

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql -u root -p # 用 ~/.mysql_secret中的临时密码登录

# 必须先改密码
> set password = password('new-password');

# 为用户添加所有主机可访问权限
> GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

SQL Error (1146): Table 'performance_schema.session_status' doesn't exist

从5.6卸载安装5.7,直接复用5.6的my.cnf和数据目录。需要执行以下命令进行更新检查并修复

mysql_upgrade -u root -p --force

--force参数根据情况选择是否使用

参考链接

最后更新于