同一Linux下安装两个版本的MySQL,非rpm安装

mysql 5.7.41以及mysql 8.0.33,通过官方提供的编译文件压缩包(tar.gz),非rpm安装文件

1. 下载
官网MySQL :: Download MySQL Community Server (Archived Versions)下载需要版本的mysql

mysql-5.7.41-el7-x86_64.tar.gz
mysql-8.0.33-el7-x86_64.tar.gz

2. 安装
2.1 准备
2.1.1 路径规划
        服务器上通过LVM挂在规划 /u01 路径用于安装应用,/u01路径用于存储数据

        创建文件夹:

[root@localhost ~]# mkdir -p /u01/mysql  #安装包解压到此路径下
[root@localhost ~]# mkdir -p /u02/mysql/mysql57/data
[root@localhost ~]# mkdir -p /u02/mysql/mysql57/logs
[root@localhost ~]# mkdir -p /u02/mysql/mysql80/data
[root@localhost ~]# mkdir -p /u02/mysql/mysql80/logs

2.1.2 解压
        将两个tar.gz压缩包上传到服务器的/u01/mysql路径下,解压后得到与压缩包名一致的文件夹,将文件夹重命名(主要为了路径简短好记)

[root@localhost mysql]# tar -zxvf mysql-5.7.41-el7-x86_64.tar.gz
[root@localhost mysql]# mv mysql-5.7.41-el7-x86_64.tar.gz mysql-5.7.41
[root@localhost mysql]# tar -zxvf mysql-8.0.33-el7-x86_64.tar.gz
[root@localhost mysql]# mv mysql-8.0.33-el7-x86_64.tar.gz mysql-8.0.33

如下:(安装完后我已将压缩包删除,并且安装过程中会变更文件所有人,故下图仅有两个文件夹,且文件夹的所有者都是mysql,基于root操作的此时的所有者应该是root)

2.2 配置
2.2.1 删除/重命名/etc/my.cnf
        /etc/my.cnf是mysql默认且优先读取的配置文件,第二顺位是安装路径下的my.cnf,由于我们需要装载两个mysql且互不干扰,所以需要删掉第一顺位的配置文件。

2.2.2 为两个mysql分别创建配置文件my.cnf
        创建 /u01/mysql/mysql-5.7.41/my.cnf 以及 /u01/mysql/mysql-8.0.33/my.cnf,文件内容如下:

  /u01/mysql/mysql-5.7.41/my.cnf:

[mysqld]
port=3357
user=mysql
basedir=/u01/mysql/mysql-5.7.41
datadir=/u02/mysql/mysql57/data
socket=/tmp/mysql57.sock
log-error=/u02/mysql/mysql57/logs/mysql.err
pid-file=/u02/mysql/mysql57/mysql.pid
character_set_server=utf8mb4
lower_case_table_names=1
 
[mysqld_safe]
log-error=/u02/mysql/mysql57/logs/mysql.err
pid-file=/u02/mysql/mysql57/mysql.pid
tmpdir=/tmp/mysql57
 

/u01/mysql/mysql-8.0.33/my.cnf :

[mysqld]
port=3380
user=mysql
basedir=/u01/mysql/mysql-8.0.33
datadir=/u02/mysql/mysql80/data
socket=/tmp/mysql80.sock
log-error=/u02/mysql/mysql80/logs/mysql.err
pid-file=/u02/mysql/mysql80/mysql.pid
character_set_server=utf8mb4
lower_case_table_names=1
 
[mysqld_safe]
log-error=/u02/mysql/mysql80/logs/mysql.err
pid-file=/u02/mysql/mysql80/mysql.pid
tmpdir=/tmp/mysql80

2.2.3 配置service启动文件
        以mysql5.7.41为例,编辑 /u01/mysql/mysql-5.7.41/support-files/mysql.server 

        将文件的第46、47、58、63、207行,将对应信息配置为我们安装的真实路径,如下

/u01/mysql/mysql-8.0.33/support-files/mysql.server 如是

        将编辑好的/u01/mysql/mysql-5.7.41/support-files/mysql.server、/u01/mysql/mysql-8.0.33/support-files/mysql.server复制到 /etc/init.d/ 下,并命名为 mysql57 和 mysql80,后面通过service命令启动服务会用到

[root@localhost ~]# cp /u01/mysql/mysql-5.7.41/support-files/mysql.server /etc/init.d/mysql57
[root@localhost ~]# cp /u01/mysql/mysql-8.0.33/support-files/mysql.server /etc/init.d/mysql80

 2.2.4 创建mysql用户并更改路径所有者

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql
[root@localhost ~]# chown -R mysql.mysql /u01/mysql
[root@localhost ~]# chown -R mysql.mysql /u02/mysql

 2.3 初始化数据库
        进入到安装路径下的bin目录,以mysql 5.7.41为例

[root@localhost ~]# cd /u01/mysql/mysql-5.7.41/bin
[root@localhost bin]# ./mysqld --defaults-file=/u01/mysql/mysql-5.7.41/my.cnf --basedir=/u01/mysql/mysql-5.7.41 --datadir=/u02/mysql/mysql57/data --user=mysql --initialize
[root@localhost bin]# service mysql57 start
Starting MySQL.....SUCCESS!

至此,mysql5.7.41安装并启动成功,mysql8.0.33如是,最后通过service msyql80 start 进行启动

3. 登录数据库服务器
        在数据库初始化过程中,会随机生成root密码,记录在我们配置的log-error文件中

[root@localhost bin]# cat /u02/mysql/mysql57/logs/mysql.err | grep password
2023-07-19T08:23:56.987382Z 1 [Note] A temporary password is generated for root@localhost: #Bdm6F?J!2

        信息中显示的【#Bdm6F?J!2】就是初次登录需要用到的密码,登录mysql5.7.41数据库并修改root的密码,打开远程访问限制(依然在安装目录的bin目录下)

[root@localhost ~]# cd /u01/mysql/mysql-5.7.41/bin
[root@localhost bin]# ./mysql -uroot -p -S /tmp/mysql57.sock
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.41
 
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> set password = password('root.123');  #修改root密码
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> update user set host = '%' where user='root';  #开启root的远程访问权限
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
 
mysql> exit
Bye
[root@localhost bin]# service mysql57 restart  #重启服务
        mysql 8.0.33操作类似,但需要注意的是8.0版本在首次登录时修改密码的语法与5.7的不一样,下面是mysql 8.0.33首次登录及修改密码的过程:
 
[root@localhost ~]# cd /u01/mysql/mysql-8.0.33/bin
[root@localhost bin]# ./mysql -u root -p -S /tmp/mysql80.sock
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.33
 
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> alter user 'root'@'localhost' identified by 'root.123';
Query OK, 0 rows affected (0.08 sec)
 
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> update user set host= '%' where user='root';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
 
mysql> exit
Bye
[root@localhost bin]# service mysql80 restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL...... SUCCESS!

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux安装多个版本MySQL,可以按照以下步骤进行操作: 1. 添加 MySQL APT 存储库:首先,您需要添加 MySQL APT 存储库以获取不同版本MySQL。您可以使用以下命令安装 MySQL APT 存储库: ``` wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb ``` 在安装过程中,您将被要求选择 MySQL 版本和其他相关设置。选择适当的版本和配置,然后继续安装。 2. 更新软件包列表:安装新存储库后,更新软件包列表以获取最新的 MySQL 版本。使用以下命令进行更新: ``` sudo apt update ``` 3. 安装 MySQL:接下来,使用以下命令安装所需的 MySQL 版本: ``` sudo apt install mysql-server-<version> ``` 将 `<version>` 替换为您想要安装的具体版本号。例如,如果要安装 MySQL 8.0 版本,可以使用以下命令: ``` sudo apt install mysql-server-8.0 ``` 在安装过程中,您可能需要设置 root 用户的密码和其他相关配置。 4. 启动和管理不同版本MySQL安装完成后,您可以使用以下命令启动和管理不同版本MySQL 服务: ``` sudo systemctl start mysql@<version> # 启动特定版本MySQL sudo systemctl stop mysql@<version> # 停止特定版本MySQL sudo systemctl restart mysql@<version> # 重启特定版本MySQL ``` 将 `<version>` 替换为所需的具体版本号。 请注意,具体的命令和步骤可能因 Linux 发行版本安装方式而有所差异。请根据您的系统和需求进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值