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
相关推荐
奔跑吧 android1 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 2】【通过一个案例属性list、hlist、rbtree、xarray数据结构使用】
linux·数据结构·list·kernel·rbtree·hlist·xarray
默默无名的大学生3 小时前
数据结构—顺序表
数据结构·windows
Jared_devin3 小时前
二叉树算法题—— [蓝桥杯 2019 省 AB] 完全二叉树的权值
数据结构·c++·算法·职场和发展·蓝桥杯
AI 嗯啦5 小时前
数据结构深度解析:二叉树的基本原理
数据结构·算法
hai_qin5 小时前
十三,数据结构-树
数据结构·c++
和光同尘@5 小时前
66. 加一 (编程基础0到1)(Leetcode)
数据结构·人工智能·算法·leetcode·职场和发展
我爱996!7 小时前
LinkedList与链表
数据结构·链表
yb0os17 小时前
RPC实战和核心原理学习(一)----基础
java·开发语言·网络·数据结构·学习·计算机·rpc
hope_wisdom8 小时前
C/C++数据结构之栈基础
c语言·数据结构·c++··stack
野犬寒鸦8 小时前
力扣hot100:环形链表(快慢指针法)(141)
java·数据结构·算法·leetcode·面试·职场和发展