iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >同一Linux下安装两个版本的MySQL
  • 412
分享到

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

linuxmysql运维centos数据库 2023-10-01 11:10:19 412人浏览 薄情痞子
摘要

摘要:         打工人奉旨制作数据库服务的虚拟机模板,模板中包含各种数据库,其中Mysql需要具备5.7及8.0两个版本,并保证服务能正常同时使用。此文也当成一份笔记,方便后续自己查阅。         本次安装基于截止于写稿时最新

摘要:

        打工人奉旨制作数据库服务的虚拟机模板,模板中包含各种数据库,其中Mysql需要具备5.7及8.0两个版本,并保证服务能正常同时使用。此文也当成一份笔记,方便后续自己查阅。

        本次安装基于截止于写稿时最新的mysql版本,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.gzhttps://cdn.mysql.com/arcHives/mysql-5.7/mysql-5.7.41-el7-x86_64.tar.gz

mysql-8.0.33-el7-x86_64.tar.gzHttps://cdn.mysql.com//Downloads/MySQL-8.0/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/mysq57/data[root@localhost ~]# mkdir -p /u02/mysql/mysq57/logs[root@localhost ~]# mkdir -p /u02/mysql/mysq80/data[root@localhost ~]# mkdir -p /u02/mysql/mysq80/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-5.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=3357user=mysqlbasedir=/u01/mysql/mysql-5.7.41datadir=/u02/mysg/mysgl57/dataSocket=/tmp/mysql57.socklog-error=/u02/mysql/mysql57/logs/mysql.errpid-file=/u02/mysql/mysql57/mysql.pidcharacter_set_server=utf8mb4lower_case_table_names=1[mysqld_safe]log-error=/u02/mysql/mysql57/logs/mysql.errpid-file=/u02/mysql/mysql57/mysql.pidtmpdir=/tmp/mysql57

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

[mysqld]port=3380user=mysqlbasedir=/u01/mysql/mysql-8.0.33Datadir=/u02/mysg/mysgl80/datasocket=/tmp/mysql80.socklog-error=/u02/mysql/mysql80/logs/mysql.errpid-file=/u02/mysql/mysql80/mysql.pidcharacter_set_server=utf8mb4lower_case_table_names=1[mysqld_safe]log-error=/u02/mysql/mysql80/logs/mysql.errpid-file=/u02/mysql/mysql80/mysql.pidtmpdir=/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.33/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 startStarting 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 passWord2023-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.sockEnter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.41Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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 mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> update user set host = '%' where user='root';  #开启root的远程访问权限Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> flush privileges;Query OK, 0 rows affected (0.02 sec)mysql> exitBye[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.sockEnter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 8Server version: 8.0.33Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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 mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> update user set host= '%' where user='root';Query OK, 1 row affected (0.05 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)mysql> exitBye[root@localhost bin]# service mysql80 restartShutting down MySQL.. SUCCESS! Starting MySQL...... SUCCESS!

4. 创建MySQL命令行的软连接

        类似第3章中进入到mysql安装路径的bin目录中执行 ./mysql xxxx 来进行登录,我们需要的是在任意目录下都可以通过mysql命令进行登录,有两种解决办法:

        1. 在 /usr/bin 目录下创建 /u01/mysql/mysql-8.0.33/bin/mysql 的软连接

[root@localhost ~]# ln -s /u01/mysql/mysql-8.0.33/bin/mysql /usr/bin/mysql

        2. 将 mysql8.0.33的bin目录加入到PATH当中

[root@localhost ~]# export PATH=$PATH:/u01/mysql/mysql-8.0.33/bin/

我个人是将5.7和8.0下的mysql分别创建了软连接,因为我也还没搞清楚,通过8.0的客户端指令登录5.7的服务能不能兼容,反正指定了socket也能正常登录,但总觉得还是会有点区别,反正方法都在上面,大家自行甄别。

另:将bin加入到PATH还有个好处就是其他命令,比如mysqldump啥的也能用,就是需要指定不同的socket

        创建完成后即可在任意目录下通过指定不同的socket,进入不同版本的mysql

[root@localhost ~]# mysql -u root -p -S /tmp/mysql80.sock## 或者[root@localhost ~]# mysql -u root -p -S /tmp/mysql57.sock

        当然,不想每次都输入socket也是可以偷懒的,哈哈哈哈哈哈哈哈哈哈哈,方法就是通过alias别名的方式默认加上socket,方法如下:

        针对所有用户,可编辑 /etc/bashrc 文件,只针对root用户,可编辑 /root/.bashrc,针对其他个别用户,可编辑 /home/[用户名]/.bashrc

[root@localhost ~]# vim .bashrC### 添加alias mysql80='mysql -S /tmp/mysql80.sock'alias mysql57='mysql -S /tmp/mysql57.sock'### Esc + wq! 保存退出[root@localhost ~]# source .bashrc

         至此,就可直接通过 mysql80 -u root -p 命令登录mysql 8.0服务,通过 mysql57 -u root -p 命令登录mysql 5.7服务

        当然还有一些其他的可增加易用的方法,比如将服务添加到systemctl,或者通过mysqld_multi来管理多个服务,后续有时间再研究吧。

        完结!撒花!

来源地址:https://blog.csdn.net/qq_28391193/article/details/131816233

您可能感兴趣的文档:

--结束END--

本文标题: 同一Linux下安装两个版本的MySQL

本文链接: https://www.lsjlt.com/news/422229.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 同一Linux下安装两个版本的MySQL
    摘要:         打工人奉旨制作数据库服务的虚拟机模板,模板中包含各种数据库,其中mysql需要具备5.7及8.0两个版本,并保证服务能正常同时使用。此文也当成一份笔记,方便后续自己查阅。         本次安装基于截止于写稿时最新...
    99+
    2023-10-01
    linux mysql 运维 centos 数据库
  • windows中同时安装两个不同版本的mysql
    文章目录 前言解压mysql新建所需目录及文件配置my.ini文件安装配置mysql8.0.25dll丢失错误解决问题 修改注册表启动mysql登录后修改密码总结 前言 有的时候,你是...
    99+
    2023-09-21
    mysql windows 数据库
  • 【Windows上同时安装两个不同版本MYSQL】MySQL安装教程--5.7和8.0版本
    一、MySQL官网下载对应版本的zip文件 最新版本8.0.34下载链接:https://dev.mysql.com/downloads/mysql/ MySQL 5.7下载链接:https://d...
    99+
    2023-09-20
    windows mysql 数据库
  • 同一个电脑安装两个jdk版本的方法
    同一个电脑安装两个jdk版本 场景:在学习的过程中,有些项目的idk版本不是很兼容,小白又怕卸载了之前安装的jdk导致以前的做的项目无法运行,因此需要在一台电脑当中安装多个版本的jdk!!! 1 . ...
    99+
    2023-10-22
    java
  • 一台电脑怎么安装两个版本MYSQL
    这篇“一台电脑怎么安装两个版本MYSQL”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“一台电脑怎么安装两个版本MYSQL”文...
    99+
    2023-07-05
  • 一台电脑(windows)安装两个版本MYSQL方法
    一、同一台电脑需要安装2个MYSQL,以mysql-5.7.39和mysql-8.0.30为例; 下载:https://downloads.mysql.com/archives/community/ 选择相对应版本; 下载并解压下相应安装包...
    99+
    2023-09-08
    mysql 数据库
  • windows如何安装两个版本的mysql的方法
    Windows上安装两个版本的mysql 背景:在学习项目的时候,项目中使用mysql5.7的版本,而自己的windows系统中安装的是mysql8.0版本,在尝试将项目中的mysql5.7版本的代码...
    99+
    2023-09-03
    mysql windows 数据库
  • Linux下怎么安装多个Python版本
    这篇“Linux下怎么安装多个Python版本”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux下怎么安装多个Pyth...
    99+
    2023-06-28
  • 同一台电脑上如何安装两个mysql
    同一台电脑上如何安装两个mysql?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql能装两个。安装步骤:1、在c盘中...
    99+
    2024-04-02
  • 如何安装多个版本的python,python可以装两个版本吗
    这篇文章主要介绍了可不可以在同一台计算机上安装多个python版本,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1、不同版本的python不能安装到同一台计算机上 可以的,...
    99+
    2023-09-22
    小发猫
  • Vue项目中怎么安装两个不同版本依赖
    这篇文章主要介绍“Vue项目中怎么安装两个不同版本依赖”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue项目中怎么安装两个不同版本依赖”文章能帮助大家解决问题。在 Vue 项目中安装两个不同版本的...
    99+
    2023-07-05
  • 一台电脑(windows系统)安装两个版本MYSQL方法步骤
    目录一、同一台电脑需要安装2个mysql,以mysql-5.7.39和mysql-8.0.30为例; 二、安装mysql-8.0.30(先停止mysql-5.7.39)总结一、同一台电脑需要安装2个MYSQL,...
    99+
    2023-03-08
    安装两个版本的mysql windows安装两个版本的微信 mysql windows安装
  • Win10怎么同时安装两个版本的JDK并随时切换
    本篇内容主要讲解“Win10怎么同时安装两个版本的JDK并随时切换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Win10怎么同时安装两个版本的JDK并随时切换”吧!一,官网下载两个版本的JDK...
    99+
    2023-07-05
  • Linux系统下安装PHP7.3版本
    请先安装依赖包 $ yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel...
    99+
    2024-04-02
  • Linux环境下GPU版本的pytorch安装
    服务器环境: Ubuntu 16.04.7 显卡:2080 cuda:10.1 注:若服务器有管理员账户和个人账户,最好在个人账户下重新安装anaconda,否则安装pytorch...
    99+
    2024-04-02
  • Linux下如何安装配置源代码版本的MySQL
    这篇文章主要为大家展示了“Linux下如何安装配置源代码版本的MySQL”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装配置源代码版本的MyS...
    99+
    2024-04-02
  • Mac上安装多个版本的MySQL
    文章目录 准备工作先确定自己机器是多少位的下载包 具体步骤1. 先安装低版本的MySQL2. 清理完后,再安装高版本的MySQL3. 将低版本的文件夹移回 /usr/local4. 切换...
    99+
    2023-09-12
    mysql macos 数据库
  • 本地windows安装两个mysql服务器,配置主从同步
    目录一、配置两个mysql服务器1.首先安装mysql2.复制安装后的目录3.安装服务4. 开启服务5. 停止服务二、设置主从配置:大型网站为了缓解大量的并发访问,除了在网站实现分布式负载均衡,还会搭建服务器mysql集...
    99+
    2022-12-14
    Mysql 主从配置
  • 为什么 go get 在使用 -u 时会下载同一包的两个版本
    php小编小新解答为什么在使用"go get -u"命令时会下载同一个包的两个版本。这个问题的原因在于go mod的工作原理。go mod是Go语言在1.11版本引入的依赖管理工具,它...
    99+
    2024-02-12
    go语言
  • Windows下查看安装的PyTorch版本的两种方法
    方法一:cmd终端查看 win + R 进入终端 在终端中依次输入 >>>python>>>import torch>>>torch.__version__ //注意version前后是两个下划线...
    99+
    2023-09-05
    pytorch python 深度学习
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作