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
相关推荐
yuuki23323342 分钟前
【数据结构】双向链表的实现
c语言·数据结构·后端
我不是彭于晏丶1 小时前
238. 除自身以外数组的乘积
数据结构·算法
代码雕刻家1 小时前
1.6.课设实验-数据结构-栈、队列-银行叫号系统2.0
c语言·数据结构
Violet_YSWY2 小时前
任何数据结构的构造或初始化,都应指定大小,避免数据结构无限增长吃光内存【示例】
java·数据结构
代码雕刻家2 小时前
1.7.课设实验-数据结构-二叉树-文件夹创建系统
c语言·数据结构
sigd4 小时前
排队选人-2024年秋招-小米集团-软件开发岗-第二批笔试
数据结构·算法
立志成为大牛的小牛18 小时前
数据结构——三十七、关键路径(王道408)
数据结构·笔记·程序人生·考研·算法
Shinom1ya_21 小时前
算法 day 41
数据结构·算法·leetcode
无敌最俊朗@21 小时前
C++ 值类别与移动语义详解(精简版)
java·数据结构·算法
岑梓铭1 天前
《考研408数据结构》第六章(5.5树的应用)复习笔记
数据结构·笔记·考研·408·ds