centos7 安装mysql5.7.36和mysql8.0.32(同时存在)

在一台Centos7虚拟机上面同时安装mysql5.7和mysql8.0的步骤,废话不多说,直接上资源。

#mysql5.7.36百度网盘下载链接 https://pan.baidu.com/s/1R3IXl-fMQTkHmkjosLc7rw?pwd=8y5i

#mysql8.0.32百度网盘下载链接 https://pan.baidu.com/s/1pqHFnRKL00StJ_ck0DGrkQ?pwd=uwsh

温馨提示:建议使用各个版本自带的mysqld_safe守护进程启动,如果不用守护进程启动两个数据库启动加载的配置文件容易相互形象。守护进程对性能和其他特性的影响无特殊场景可以忽略。

守护进程下的启动和停止命令和dump导出都有执行命令。

将下载下来的的安装包直接放在/usr/local下面,按照下面命令执行即可

以下是mysql5.7.36的安装操作,直接逐步执行即可(mysql5.7.36这里配置的端口号是3307,根据自己需要调整)

bash 复制代码
#一、MySQL5.7.36 安装步骤
#先把将安装包解压、重命名,移动到/usr/local/目录:
cd /usr/local/
tar -xvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql57
mv 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=3307
socket=/tmp/mysql57.sock
#默认开启了二进制日志,可以设置关闭或设置自动清理时间expire_logs_days,查看自动清理时间 SHOW VARIABLES LIKE 'expire_logs_days';
log-bin=/usr/local/mysql57/mysql-bin
#建议设置expire_logs_days 日志清理时间(两天清零一次)
expire_logs_days = 2
server-id=2

[mysqld_safe]
log-error=/usr/local/mysql57/data/error.log
pid-file=/usr/local/mysql57/data/mysqld.pid
tmpdir=/tmp/mysql57

#授权
chmod 755 my.cnf

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

......
basedir=/usr/local/mysql57
datadir=/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 mysql
useradd mysql -g mysql
chown mysql:mysql /usr/local/mysql57/
#初始化MySQL5.7,记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:
/usr/local/mysql57/bin/mysqld --defaults-file=/usr/local/mysql57/my.cnf --user=mysql --initialize

#启动mysql 5.7.36(温馨提示:按照原文中的启动方式可以启动8.0.32版本的加载了mysql5.7.36的配置文件,建议使用各个版本自带的mysqld_safe守护进程启动)
/usr/local/mysql57/bin/mysqld_safe --defaults-file=/usr/local/mysql57/my.cnf --user=mysql &
#停止mysql 5.7.36
/usr/local/mysql57/bin/mysqladmin -uroot -p -S/tmp/mysql57.sock shutdown

#更改账号密码(登录使用初始化时展示的密码,下面是指定本机ip端口号3307登录)
cd /usr/local/mysql57/bin
./mysql -h 127.0.0.1 -P 3307 -u root -p

一些初始化操作:

sql 复制代码
-- mysql5.7修改密码
-- 设置密码
SET PASSWORD = PASSWORD('你的密码');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
-- 设置为永久密码(刷新缓存)
flush privileges;
-- 查询用户表
-- 切换到用户表
use mysql;
-- 查询用户信息
select User,authentication_string,Host from user;
-- 设置远程访问
grant all privileges on *.* to root@"%" identified by "你的密码";
grant all privileges on *.* to 'root'@'%' with grant option; 
-- 刷新权限表
flush privileges;
bash 复制代码
#数据迁移(因为是安全模式启动,加一下socket参数) 使用mysqldump
cd /usr/local/mysql57/bin
./mysqldump --socket=/tmp/mysql57.sock --single-transaction -u root -P 3307 -p'你的密码' --databases test > "/usr/local/test.sql"

以下是mysql8.0.32的安装操作,直接逐步执行即可(mysql8.0.32这里配置的端口号是3308,根据自己需要调整)

bash 复制代码
#二、MySQL8.30.32 安装步骤
#把安装包解压、重命名,移动到/usr/local/目录:
cd /usr/local
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
mv 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=3308
socket=/tmp/mysql80.sock
character-set-server=UTF8MB4
symbolic-links=0

log-bin=/usr/local/mysql80/mysql-bin
#建议设置expire_logs_days 日志清理时间(两天清零一次)
expire_logs_days = 2
server-id=1

gtid_mode=on
enforce_gtid_consistency=on

[mysqld_safe]
log-error=/usr/local/mysql80/data/error.log
pid-file=/usr/local/mysql80/data/mysqld.pid
tmpdir=/tmp/mysql80

#授权
chmod 755 my.cnf
#对照以下内容,修改/usr/local/mysql80/support-files/mysql.server文件:
vim /usr/local/mysql80/support-files/mysql.server

......
basedir=/usr/local/mysql80
datadir=/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 mysql
useradd mysql -g mysql
chown mysql:mysql /usr/local/mysql80/
#初始化MySQL8.0,记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:
/usr/local/mysql80/bin/mysqld --defaults-file=/usr/local/mysql80/my.cnf --user=mysql --initialize

#启动mysql 8.0.32(温馨提示:按照原文中的启动方式可以启动8.0.32版本的加载了mysql5.7.36的配置文件,建议使用各个版本自带的mysqld_safe守护进程启动)
/usr/local/mysql80/bin/mysqld_safe --defaults-file=/usr/local/mysql80/my.cnf --user=mysql &
#停止mysql 8.0.32
/usr/local/mysql80/bin/mysqladmin -uroot -p -S/tmp/mysql80.sock shutdown

#更改账号密码(登录使用初始化时展示的密码,下面是指定本机ip端口号3308登录)
cd /usr/local/mysql80/bin
./mysql -h 127.0.0.1 -P 3308 -u root -p
相关推荐
ZTLJQ1 小时前
专业Python爬虫实战教程:逆向加密接口与验证码突破完整案例
开发语言·数据结构·爬虫·python·算法
努力的小帅2 小时前
C++_红黑树树
开发语言·数据结构·c++·学习·算法·红黑树
逐花归海.2 小时前
『 C++ 入门到放弃 』- 哈希表
数据结构·c++·程序人生·哈希算法·散列表
qqxhb3 小时前
零基础数据结构与算法——第六章:算法设计范式与高级主题-设计技巧(上)
java·数据结构·算法·分解·空间换时间·时空平衡
xiaofann_4 小时前
【数据结构】用堆实现排序
数据结构
Swiler4 小时前
数据结构第2问:什么是算法?
数据结构·人工智能·算法
鼠鼠一定要拿到心仪的offer4 小时前
Day23-二叉树的层序遍历(广度优先搜素)
数据结构·算法·leetcode
春日轻轨@4 小时前
SPFA检测负权环
数据结构·c++·算法
YuTaoShao4 小时前
【LeetCode 热题 100】34. 在排序数组中查找元素的第一个和最后一个位置——二分查找
java·数据结构·算法·leetcode
lin_FS5 小时前
反转局部链表
数据结构·算法