欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Rocky Linux 9.5中完美迁移mysql5.6.17到mysql5.7.11

Rocky Linux 9.5中完美迁移mysql5.6.17到mysql5.7.11

2025/4/2 9:07:49 来源:https://blog.csdn.net/rosten/article/details/146769954  浏览:    关键词:Rocky Linux 9.5中完美迁移mysql5.6.17到mysql5.7.11

首先Rocky Linux 9.5中,默认官方建议使用的是mysql8.0,项目要兼容以往数据,经过测试跟mysql5.7.11能做兼容。

一:工具准备以及安装步骤

1、官网下载地址:https://downloads.mysql.com/archives/community/

下载版本为:5.7.11

2、连接linux服务器,检查依赖包,执行对应的命令

rpm -qa|grep libaio

rpm -qa|grep net-tools

3、查找Mysql的MariaDB依赖,如果有,先删除了,确保安装mysql时是干净的环境

rpm -qa|grep mariadb

若是有,需要卸载

rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps,名称按服务器上对应的名称卸载

4、依次安装对应的mysql rpm包

rpm -ivh mysql-community-common-5.7.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.11-1.el7.x86_64.rpm 

rpm -ivh mysql-community-server-5.7.11-1.el7.x86_64.rpm

5、安装mysql-community-client-5.7.11-1.el7.x86_64.rpm过程中会出现报错,报错内容如下:

erro:libncurses.so.5()(64bit) is needed。

使用命令安装对应的依赖包

yum install libncurses*

备注:mysql安装包依次,按顺序安装!

6、启动mysql服务

systemctl start mysqld

systemctl stop mysqld

systemctl restart mysqld

二、启动mysqld如果报错排查

1、通过命令检查是否正常启动

systemctl status mysqld 或者使用 journalctl -u mysql.service --since "5 minutes ago"

2、检查数据目录权限

确保 MySQL 数据目录(默认 /var/lib/mysql)的权限正确:

chown -R mysql:mysql /var/lib/mysql

chmod 750 /var/lib/mysql

3、如果出现未能登录mysql,可以重新生产数据库表结构

# 停止 MySQL 服务
systemctl stop mysql# 备份旧数据(可选,防止数据丢失)
mv /var/lib/mysql /var/lib/mysql.bak# 重新初始化数据目录(不同 MySQL 版本命令不同)
# MySQL 5.7 及以下:
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql# MySQL 8.0+:
mysqld --initialize --user=mysql --datadir=/var/lib/mysql

验证修复

# 登录 MySQL(使用初始化后的临时密码)
mysql -u root -p# 检查系统表是否存在
SHOW DATABASES;
USE mysql;
SHOW TABLES;  # 应看到 user、db 等表
数据目录已存在但损坏
# 尝试修复 InnoDB 表
mysqlcheck --all-databases --check-upgrade --auto-repair -u root -p

4、修改SELinux 权限问题

# 临时关闭 SELinux
setenforce 0

# 永久修复 SELinux 上下文
sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
sudo restorecon -Rv /var/lib/mysql

5、若禁用 SELinux 后可以正常连接,你可以通过修改 SELinux 策略来允许 MySQL 访问

semanage port -a -t mysqld_port_t -p tcp 3306

三、修改对应配置信息

1、防火墙放行 3306 端口

# 添加 TCP 3306 端口规则
firewall-cmd --permanent --add-port=3306/tcp# 重新加载防火墙配置
firewall-cmd --reload# 验证规则是否生效
firewall-cmd --list-ports | grep 3306

2、修改配置文件 vi /etc/my.cnf 增加内容如下:

#skip-grant-tables
bind-address = 0.0.0.0  #允许所有 IP 访问

lower_case_table_names = 1

 

3、获取临时密码(若无密码)
grep 'temporary password' /var/log/mysql/mysql-error.log。这一步我没生效

# 登录并修改密码
/usr/local/mysql/bin/mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
FLUSH PRIVILEGES;
exit;

4、检查端口信息

lsof -i :3306

5、开放所有的IP都能登录mysql

grant all PRIVILEGES on *.* to root@'%' identified by 'password';
FLUSH PRIVILEGES;

6、本地检查端口监听

ss -tulnp | grep 3306

7、检查防火墙状态

firewall-cmd --state
  • 如果返回 running,说明防火墙已启用。

  • 如果未启用,启动防火墙

    systemctl enable --now firewalld

 开放 8080 端口

# 添加 TCP 8080 端口规则
sudo firewall-cmd --permanent --add-port=8080/tcp# 重新加载防火墙配置
sudo firewall-cmd --reload# 验证规则是否生效
sudo firewall-cmd --list-ports | grep 8080

四、其他注意事项:

1、若你想不区分大小写地查找并直接删除当前目录下包含 “BootStrap” 的文件,可使用如下命令

find . -maxdepth 1 -type f -iname "*BootStrap*" -exec rm -f {} \;
命令解释
  • find:用于在文件系统中查找文件和目录。
  • .:表示从当前目录开始查找。
  • -type f:指定查找的对象为文件。
  • -iname "*BootStrap*"-iname 表示不区分大小写地匹配文件名,*BootStrap* 表示文件名中包含 "BootStrap" 字样。
  • -exec rm -f {} \;:对查找到的每个文件执行 rm -f 命令,{} 是 find 命令查找到的文件的占位符,\; 表示命令结束。

2、其他注意事项 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词