欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟

 更新時(shí)間:2024年03月11日 09:57:58   作者:冷呀冷咖啡  
打工人奉旨制作數(shù)據(jù)庫服務(wù)的虛擬機(jī)模板,模板中包含各種數(shù)據(jù)庫,其中mysql需要具備5.7及8.0兩個(gè)版本,并保證服務(wù)能正常同時(shí)使用,所以本文給小編介紹了在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟,需要的朋友可以參考下

摘要:

打工人奉旨制作數(shù)據(jù)庫服務(wù)的虛擬機(jī)模板,模板中包含各種數(shù)據(jù)庫,其中mysql需要具備5.7及8.0兩個(gè)版本,并保證服務(wù)能正常同時(shí)使用。此文也當(dāng)成一份筆記,方便后續(xù)自己查閱。

本次安裝基于截止于寫稿時(shí)最新的MySQL版本,mysql 5.7.41以及mysql 8.0.33,通過官方提供的編譯文件壓縮包(tar.gz),非rpm安裝文件。

1. 下載

官網(wǎng)MySQL :: Download MySQL Community Server (Archived Versions)下載需要版本的mysql

mysql-5.7.41-el7-x86_64.tar.gz

https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-el7-x86_64.tar.gz

mysql-8.0.33-el7-x86_64.tar.gz

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-el7-x86_64.tar.gz

2. 安裝

2.1 準(zhǔn)備

2.1.1 路徑規(guī)劃

服務(wù)器上通過LVM掛在規(guī)劃 /u01 路徑用于安裝應(yīng)用,/u01路徑用于存儲(chǔ)數(shù)據(jù)

創(chuàng)建文件夾:

[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 解壓

將兩個(gè)tar.gz壓縮包上傳到服務(wù)器的/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

如下:(安裝完后我已將壓縮包刪除,并且安裝過程中會(huì)變更文件所有人,故下圖僅有兩個(gè)文件夾,且文件夾的所有者都是mysql,基于root操作的此時(shí)的所有者應(yīng)該是root)

2.2 配置

2.2.1 刪除/重命名/etc/my.cnf

/etc/my.cnf是mysql默認(rèn)且優(yōu)先讀取的配置文件,第二順位是安裝路徑下的my.cnf,由于我們需要裝載兩個(gè)mysql且互不干擾,所以需要?jiǎng)h掉第一順位的配置文件。

2.2.2 為兩個(gè)mysql分別創(chuàng)建配置文件my.cnf

創(chuàng)建 /u01/mysql/mysql-5.7.41/my.cnf 以及 /u01/mysql/mysql-8.0.33/my.cnf,文件內(nèi)容如下:

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

[mysqld]
port=3357
user=mysql
basedir=/u01/mysql/mysql-5.7.41
datadir=/u02/mysg/mysgl57/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/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

2.2.3 配置service啟動(dòng)文件

以mysql5.7.41為例,編輯 /u01/mysql/mysql-5.7.41/support-files/mysql.server 

將文件的第46、47、58、63、207行,將對應(yīng)信息配置為我們安裝的真實(shí)路徑,如下:

/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復(fù)制到 /etc/init.d/ 下,并命名為 mysql57 和 mysql80,后面通過service命令啟動(dòng)服務(wù)會(huì)用到

[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 創(chuàng)建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 初始化數(shù)據(jù)庫

進(jìn)入到安裝路徑下的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安裝并啟動(dòng)成功,mysql8.0.33如是,最后通過service msyql80 start 進(jìn)行啟動(dòng)

3. 登錄數(shù)據(jù)庫服務(wù)器

在數(shù)據(jù)庫初始化過程中,會(huì)隨機(jī)生成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數(shù)據(jù)庫并修改root的密碼,打開遠(yuǎn)程訪問限制(依然在安裝目錄的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的遠(yuǎn)程訪問權(quán)限
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  #重啟服務(wù)

mysql 8.0.33操作類似,但需要注意的是8.0版本在首次登錄時(shí)修改密碼的語法與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!

4. 創(chuàng)建MySQL命令行的軟連接

類似第3章中進(jìn)入到mysql安裝路徑的bin目錄中執(zhí)行 ./mysql xxxx 來進(jìn)行登錄,我們需要的是在任意目錄下都可以通過mysql命令進(jìn)行登錄,有兩種解決辦法:

1. 在 /usr/bin 目錄下創(chuàng)建 /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當(dāng)中

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

我個(gè)人是將5.7和8.0下的mysql分別創(chuàng)建了軟連接,因?yàn)槲乙策€沒搞清楚,通過8.0的客戶端指令登錄5.7的服務(wù)能不能兼容,反正指定了socket也能正常登錄,但總覺得還是會(huì)有點(diǎn)區(qū)別,反正方法都在上面,大家自行甄別。

另:將bin加入到PATH還有個(gè)好處就是其他命令,比如mysqldump啥的也能用,就是需要指定不同的socket

創(chuàng)建完成后即可在任意目錄下通過指定不同的socket,進(jìn)入不同版本的mysql

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

當(dāng)然,不想每次都輸入socket也是可以偷懶的,哈哈哈哈哈哈哈哈哈哈哈,方法就是通過alias別名的方式默認(rèn)加上socket,方法如下:

針對所有用戶,可編輯 /etc/bashrc 文件,只針對root用戶,可編輯 /root/.bashrc,針對其他個(gè)別用戶,可編輯 /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服務(wù),通過 mysql57 -u root -p 命令登錄mysql 5.7服務(wù)

當(dāng)然還有一些其他的可增加易用的方法,比如將服務(wù)添加到systemctl,或者通過mysqld_multi來管理多個(gè)服務(wù),后續(xù)有時(shí)間再研究吧。

以上就是在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟的詳細(xì)內(nèi)容,更多關(guān)于Linux安裝兩個(gè)版本MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解讀MySQL為什么不推薦使用外鍵

    解讀MySQL為什么不推薦使用外鍵

    這篇文章主要介紹了解讀MySQL為什么不推薦使用外鍵問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL分表策略與實(shí)踐小結(jié)

    MySQL分表策略與實(shí)踐小結(jié)

    MySQL分表是將原始表中的數(shù)據(jù)按照一定規(guī)則分散到多個(gè)表中,以減輕單表數(shù)據(jù)量過大的壓力,本文主要介紹了MySQL分表策略與實(shí)踐小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 一文搞懂MySQL持久化和回滾的原理

    一文搞懂MySQL持久化和回滾的原理

    本文主要介紹了MySQL持久化和回滾的原理,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Winserver2012下mysql 5.7解壓版(zip)配置安裝教程詳解

    Winserver2012下mysql 5.7解壓版(zip)配置安裝教程詳解

    這篇文章主要介紹了Winserver2012下mysql 5.7解壓版(zip)配置安裝教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • 關(guān)于MySQL與Golan分布式事務(wù)經(jīng)典的七種解決方案

    關(guān)于MySQL與Golan分布式事務(wù)經(jīng)典的七種解決方案

    本文介紹了分布式事務(wù)的一些基礎(chǔ)理論,并對常用的分布式事務(wù)方案進(jìn)行了講解;在文章的后半部分還給出了事務(wù)異常的原因、分類以及優(yōu)雅的解決方案;最后以一個(gè)可運(yùn)行的分布式事務(wù)例子,將前面介紹的內(nèi)容以簡短的程序進(jìn)行演示,需要的朋友可以參考一下文章具體內(nèi)容
    2021-10-10
  • MySql批量刪除多個(gè)表的方法

    MySql批量刪除多個(gè)表的方法

    本文主要介紹了MySql批量刪除多個(gè)表的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • MySql數(shù)據(jù)庫基礎(chǔ)知識(shí)點(diǎn)總結(jié)

    MySql數(shù)據(jù)庫基礎(chǔ)知識(shí)點(diǎn)總結(jié)

    這篇文章主要介紹了MySql數(shù)據(jù)庫基礎(chǔ)知識(shí)點(diǎn),總結(jié)整理了mysql數(shù)據(jù)庫基本創(chuàng)建、查看、選擇、刪除以及數(shù)據(jù)類型相關(guān)操作技巧,需要的朋友可以參考下
    2020-06-06
  • MySql索引原理和SQL優(yōu)化方式

    MySql索引原理和SQL優(yōu)化方式

    索引是提升數(shù)據(jù)庫查詢效率的有序存儲(chǔ)結(jié)構(gòu),包括主鍵索引、唯一索引、普通索引等,約束則用于數(shù)據(jù)完整性,包含主鍵、唯一、外鍵等約束,B+樹是常用的索引結(jié)構(gòu),減少磁盤IO次數(shù),索引應(yīng)用場景包括where、groupby、orderby
    2024-09-09
  • mysql insert的幾點(diǎn)操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )

    mysql insert的幾點(diǎn)操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )

    DELAYED 做為快速插入,并不是很關(guān)心失效性,提高插入性能。
    2010-04-04
  • MySQL判斷列的值既不為NULL又不為空字符串的問題

    MySQL判斷列的值既不為NULL又不為空字符串的問題

    這篇文章主要介紹了MySQL判斷列的值既不為NULL又不為空字符串的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論