Linux red 安装多个版本mysql

1,下载安装包

https://dev.mysql.com/downloads/mysql/下载对应的安装包

记住选择对应的版本很重要不然会浪费时间,我选择的是linux-generc注意这个查看Red Hat glibc的版本
ldd --version

选择对应的版本不然会有问题。

我这里选择的是8点多和5点多版本

将下载的包解压命令

tar -xvf mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz

因为我之前已经安装了一个版本5点多

将原先的/etc/my.cnf 这个必须要移除到对应安装的mysql5的下面。没有的可以不用

为两个mysql分别创建配置文件my.cnf 原先存在的就移除到对应的位置

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

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

java 复制代码
[mysqld]
port=3380
user=mysql
basedir=/u01/mysql/mysql-8.0.33
datadir=/u02/mysg/mysgl80/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

另外一个也是按照上面的配置/u01/mysql/mysql-8.0.33/是你解压包的路径根据自己需要修改

编辑 /u01/mysql/mysql-5.7.41/support-files/mysql.server

cp /u01/mysql/mysql-5.7.33/support-files/mysql.server /etc/init.d/mysql57

另外一个也是同样如此:如果之前已经安装一个不需要只需要修改一下 /etc/init.d/对应的文件名称

java 复制代码
[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

初始化数据库

进入到安装路径下的bin目录,以mysql 5.7.41为例

java 复制代码
[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 进行启动记住这里还是用root的用户

如果之前已经安装过的话直接./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密码,记录在我们配置的log-error文件中

java 复制代码
[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目录下)

java 复制代码
[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  #重启服务

数据库客户端连接不上查看下防火墙是否开启了

客户端连接mysql8的时候报Public Key Retrieval is not allowed

相关推荐
Fleshy数模18 分钟前
MySQL 表创建全攻略:Navicat 图形化与 Xshell 命令行双模式实践
linux·mysql
Nandeska28 分钟前
15、基于MySQL的组复制
数据库·mysql
神梦流1 小时前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器
AllData公司负责人1 小时前
AllData数据中台-数据同步平台【Seatunnel-Web】整库同步MySQL同步Doris能力演示
大数据·数据库·mysql·开源
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
Lsir10110_2 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
醇氧2 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
Sheffield2 小时前
command和shell模块到底区别在哪?
linux·云计算·ansible
历程里程碑2 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
郝学胜-神的一滴2 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生