文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux系统同时安装MySQL5.7和MySQL8.0

2023-09-05 16:06

关注

本文是在一台Centos7虚拟机上面同时安装mysql5.7和mysql8.0的步骤,记录一下,方便后续回顾,这篇文章之后会接着学习搭建两台虚拟机一主一从的架构。
其中配置的文件名称、目录、端口号、IP地址要根据自己电脑的实际情况进行更改。

mysql5.7和mysql8.0同时安装完成后:
在这里插入图片描述
在这里插入图片描述

mysql5.7下载地址
mysql8.0下载地址

将安装包上传到家目录:
在这里插入图片描述

MySQL5.7安装步骤

先把将安装包解压、重命名,移动到/usr/local/目录:

cd ~tar -xvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.36-linux-glibc2.12-x86_64 mysql57mv mysql57/ /usr/local/

在MySQL安装目录下创建存储数据库数据的新目录data/:

cd /usr/local/mysql57/mkdir data

新建编辑my.cnf文件并赋予执行权限(这是MySQL5.7的配置文件,8.0和5.7不一样,8.0的在后面):

cd /usr/local/mysql57/vim my.cnf
[mysqld]basedir=/usr/local/mysql57/datadir=/usr/local/mysql57/data/port=3306socket=/tmp/mysql57.socklog-bin=/usr/local/mysql57/mysql-binserver-id=2[mysqld_safe]log-error=/usr/local/mysql57/data/error.logpid-file=/usr/local/mysql57/data/mysqld.pidtmpdir=/tmp/mysql57
chmod 755 my.cnf

对照以下内容,修改/usr/local/mysql57/support-files/mysql.server文件:

vim /usr/local/mysql57/support-files/mysql.server
……basedir=/usr/local/mysql57datadir=/usr/local/mysql57/data……lockdir='/var/lock/subsys'lock_file_path="$lockdir/mysql57"……mysqld_pid_file_path=/usr/local/mysql57/data/mysqld.pid……conf=/usr/local/mysql57/my.cnf……

将修改之后的文件复制到/etc/init.d/目录,再将复制过去的文件重命名为mysql57:

cp /usr/local/mysql57/support-files/mysql.server /etc/init.d/mv /etc/init.d/mysql.server /etc/init.d/mysql57

添加mysql用户和用户组,修改MySQL安装目录的所有者:

groupadd mysqluseradd mysql -g mysqlchown mysql:mysql /usr/local/mysql57/

初始化MySQL5.7,记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:

/usr/local/mysql57/bin/mysqld --defaults-file=/usr/local/mysql57/my.cnf --user=mysql --initialize

在这里插入图片描述
MySQL5.7就算是安装完毕了。

启动MySQL5.7:

service mysql57 start

在这里插入图片描述

#登录MySQL5.7#因为要同时安装5.7和8.0,所以要选择登录的是哪个目录下的MySQL,5.7的目录是mysql57、端口号是3306。这些内容都是在配置文件中定义的。指定本地IP是使用tcp/ip方式登录,也可以通过指定socket文件的方式登录。#socket本地登录:#/usr/local/mysql80/bin/mysql -S/tmp/mysql57.sock -uroot -p #tcp/ip登录:#/usr/local/mysql80/bin/mysql -uroot -p -h127.0.0.1 -P3306#每一次输这么长有点麻烦,我们可以配置直接使用 mysql57命令登录:#系统默认在 /usr/bin 目录下查找命令,所以在 /usr/bin 目录下给 mysql57 的启动程序设置一个软链接(类似Windows的快捷方式),再将软链接的名称改一下,/usr/bin/目录下5.7的mysql软链接名字改成mysql57,方便区分5.7和8.0。ln -s /usr/local/mysql57/bin/mysql /usr/binmv /usr/bin/mysql /usr/bin/mysql57#测试一下,查看安装的MySQL版本号mysql57 -V#登录(输入密码不显示,直接粘贴原先的初始化密码回车就行)mysql57 -uroot -p -S/tmp/mysql57.sock

在这里插入图片描述

#更改root用户的默认密码为333333mysql> set password for 'root'@'localhost'='333333';#退出mysql> exit

在这里插入图片描述

MySQL8.0安装步骤

把安装包解压、重命名,移动到/usr/local/目录:

cd ~tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xzmv mysql-8.0.32-linux-glibc2.12-x86_64/ mysql80/mv mysql80/ /usr/local/

在MySQL安装目录下创建存储数据库数据的新目录data/:

cd /usr/local/mysql80/mkdir data

新建编辑my.cnf文件并赋予执行权限(MySQL8.0的配置文件):

cd /usr/local/mysql80/vim my.cnf
[mysqld]basedir=/usr/local/mysql80/datadir=/usr/local/mysql80/data/port=3307socket=/tmp/mysql80.sockcharacter-set-server=UTF8MB4symbolic-links=0log-bin=/usr/local/mysql80/mysql-binserver-id=1gtid_mode=onenforce_gtid_consistency=on[mysqld_safe]log-error=/usr/local/mysql80/data/error.logpid-file=/usr/local/mysql80/data/mysqld.pidtmpdir=/tmp/mysql80
chmod 755 my.cnf

对照以下内容,修改/usr/local/mysql80/support-files/mysql.server文件:

vim /usr/local/mysql80/support-files/mysql.server
……basedir=/usr/local/mysql80datadir=/usr/local/mysql80/data……lockdir='/var/lock/subsys'lock_file_path="$lockdir/mysql80"……mysqld_pid_file_path=/usr/local/mysql80/data/mysqld.pid……conf=/usr/local/mysql80/my.cnf……

将修改之后的文件复制到/etc/init.d/目录,再将复制过去的文件重命名为mysql80:

cp /usr/local/mysql80/support-files/mysql.server /etc/init.d/mv /etc/init.d/mysql.server /etc/init.d/mysql80

添加mysql用户和用户组,修改MySQL安装目录的所有者:

groupadd mysqluseradd mysql -g mysqlchown mysql:mysql /usr/local/mysql80/

初始化MySQL8.0,记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:

/usr/local/mysql80/bin/mysqld --defaults-file=/usr/local/mysql80/my.cnf --user=mysql --initialize

在这里插入图片描述

MySQL8.0就算是安装完毕了。

启动MySQL8.0(输入密码不显示,直接粘贴原先的初始化密码就行)(5.7和8.0类似):

service mysql80 start#登录MySQL8.0#因为要同时安装5.7和8.0,所以要选择登录的是哪个目录下的MySQL,8.0的目录是mysql80、端口号是3307。这些内容都是在配置文件中定义的。指定本地IP是使用tcp/ip方式登录,也可以通过指定socket文件的方式登录。#socket本地登录:#/usr/local/mysql80/bin/mysql -S/tmp/mysql80.sock -u root -p #tcp/ip登录:#/usr/local/mysql80/bin/mysql -u root -p -h 127.0.0.1 -P 3307#可以配置直接使用 mysql80 登录:#系统默认在 /usr/bin 目录下查找命令,所以在 /usr/bin 目录下给 mysql80 的启动程序设置一个软链接(类似Windows的快捷方式),再将软链接的名称改一下,/usr/bin/目录下8.0的mysql软链接名字改成mysql80,方便区分5.7和8.0。ln -s /usr/local/mysql80/bin/mysql /usr/binmv /usr/bin/mysql /usr/bin/mysql80#测试一下,查看安装的MySQL版本号mysql80 -V#登录(输入密码不显示,直接粘贴原先的初始化密码回车就行)mysql80 -uroot -p -S/tmp/mysql80.sock

修改root用户的密码为333333:

#更改root用户的默认密码为333333mysql> set password for 'root'@'localhost'='333333';#退出mysql> exit

允许其他所有机器连接本机MySQL8.0,这样物理机的Navicat就可以连接虚拟机的MySQL8.0了,改完之后用第二条语句刷新一下权限,现在就可以在物理机上连接了:

mysql> use mysql;mysql> update user set host='%' where user='root' and host='localhost'; #允许所有机器连接本虚拟机的MySQLmysql> flush privileges; #刷新权限mysql> select user,host from user;

在这里插入图片描述
在这里插入图片描述

如果Mysql8.0正常启动但是Navicat无法连接:

  1. 先检查主机地址和端口号和实际的是否相符;
  2. 如果所有配置都正确那可能就是虚拟机的防火墙原因,可以开放对应端口号或者关闭防火墙:
    开放3307端口号:
firewall-cmd --list-all #查看防火墙开放的端口号firewall-cmd --zone=public --add-port=3307/tcp –permanent #设置端口号3307开放firewall-cmd –reload #重启防火墙firewall-cmd --list-all #再次查看,可以看到3307已经开放

在这里插入图片描述

关闭防火墙:

systemctl status firewalld #查看防火墙状态systemctl stop firewalld #关闭防火墙systemctl disable firewalld #设置防火墙不开机不会自启动(默认的是开机自启动)

在这里插入图片描述
重新连接Navicat,连接成功。

来源地址:https://blog.csdn.net/qq_45855805/article/details/130015191

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯