詳解在Linux中同時(shí)安裝配置并使用 MySQL5.7 和 MySQL8.0

最近需要使用mysql8.0版本,但是原本的mysql5.7版本已經(jīng)被多個(gè)服務(wù)依賴,于是想想能不能同一臺(tái)服務(wù)器裝多個(gè)版本的mysql,一查確實(shí)可行,這里做一個(gè)記錄方便自己后期回憶

閱讀本文前請(qǐng)注意!??!

  1. 本文是幫助您建立在mysql5.7版本已經(jīng)安裝完成并在運(yùn)行中,另外安裝配置mysql8.0版本
  2. 如果需要同時(shí)安裝兩個(gè)版本,可以先查閱我之前所寫(xiě)關(guān)于mysql5.7版本的安裝,完成后再按本文繼續(xù)操作即可

安裝環(huán)境

CentOS7 + MySQL8.0

下載安裝包

  1. 點(diǎn)擊進(jìn)入MySQL Community Server 8.0.29 官網(wǎng)下載地址
  2. 點(diǎn)擊下拉選擇 Linux - Generic,找到名為 mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz 點(diǎn)擊下載即可

簡(jiǎn)化版命令步驟

給我自己的提醒:原來(lái)的mysql5.7配置基本沒(méi)有動(dòng),服務(wù)也沒(méi)有關(guān),下面的命令都是關(guān)于mysql8.0的,原mysql5.7的配置文件在/etc/my.cnf

  1. 解壓xz文件為tar文件,注意命令無(wú)過(guò)程顯示需要等待窗口跳至下一行
    • xz -d /usr/soft/sort/mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz -C /usr/soft/sort/
    • tar -xvf /usr/soft/sort/mysql-8.0.29-linux-glibc2.12-x86_64.tar -C /usr/soft/install/
  2. 賦予權(quán)限 chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
  3. 修改配置文件 vi /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf
    [client]
    port=3307
    # mysql57 不要這個(gè)
    mysqlx_port=33070
    socket=/tmp/mysql80.sock
    # mysql57 不要這個(gè)
    mysqlx_socket=/tmp/mysqlx80.sock
    
    [mysqld]
    # skip-grant-tables
    # mysql安裝目錄
    basedir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
    # mysql數(shù)據(jù)庫(kù)目錄
    datadir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
    port=3307
    innodb_file_per_table=1
    character-set-server=utf8
    # mysql57 不要這個(gè)
    mysqlx_port=33070
    socket = /tmp/mysql80.sock
    # mysql57 不要這個(gè)
    mysqlx_socket=/tmp/mysqlx80.sock
    
    [mysqld_safe]
    # 錯(cuò)誤日志
    log-error=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/error.log
    # pid文件
    pid-file=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/mysqld.pid
    tmpdir=/tmp/mysql80
    
  4. 賦予配置文件權(quán)限 chmod 755 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf
  5. 修改連接服務(wù)文件 vi /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/support-files/mysql.server
    # 這兩項(xiàng)在開(kāi)頭比較好找
    basedir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
    datadir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
    
    # 這項(xiàng)默認(rèn)的不用找
    lockdir='/var/lock/subsys'
    
    # 這項(xiàng)默認(rèn)有但是需要在最后改個(gè)80
    lock_file_path="$lockdir/mysql80"
    
    # 下面兩個(gè)藏在下面細(xì)心的找一下
    mysqld_pid_file_path=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/mysqld.pid
    conf=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf
    
  6. 復(fù)制注冊(cè)連接服務(wù)文件 cp -i /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql80
  7. 初始化mysql80 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf --user=mysql --initialize
    • root@localhost: 初始密碼
  8. 啟動(dòng)mysql80服務(wù) service mysql80 start,然后要記得開(kāi)放防火墻的3307端口才能使用外部連接
  9. 登錄 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql --socket=/tmp/mysql80.sock -u root -p'初始密碼'
  10. 重置密碼,登錄后依次執(zhí)行命令
    • flush privileges;
    • 注意:新版本mysql8后,不再支持 password()方法,只能通過(guò) alter語(yǔ)句進(jìn)行修改
    • ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼';
    • 如果不行可以試試 ALTER USER 'root'@'%' IDENTIFIED BY '你的密碼';
    • use mysql;
    • update user set host='%' where user='root' and host='localhost';
    • flush privileges;
  11. 查看占用端口show global variables like 'port';,如果發(fā)現(xiàn)為0,需要執(zhí)行以下步驟修改
    • 停止服務(wù):service mysql80 stop
    • 修改配置文件:vi /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf,將 [mysqld] 下的 skip-grant-tables 注釋
    • 重新啟動(dòng)服務(wù):service mysql80 start

開(kāi)啟3307端口流程

  1. cd /etc/sysconfig進(jìn)入該目錄,檢查是否存儲(chǔ)了iptables文件
  2. vim iptables使用vim編輯器修改iptables文件,按下i進(jìn)入編輯模式
  3. 在初始端口那行下面添加-A INPUT -p tcp -m state --state NEW -m tcp --dport 3307 -j ACCEPT,開(kāi)放3307端口
  4. service iptables restart重啟防火墻即可

如何mysql80服務(wù)啟動(dòng)失敗

可以參考一下步驟重新初始化數(shù)據(jù)庫(kù),親測(cè)有效

  1. 刪除data文件夾 rm -rf /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
  2. 新建data目錄 mkdir /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
  3. 賦予權(quán)限 chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
  4. 重新初始化 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf --user=mysql --initialize
  5. 測(cè)試啟動(dòng)服務(wù) service mysql80 start,成功即可

參考文檔

  1. linux 下同時(shí)安裝 mysql5.7 和 mysql8.0
  2. linux安裝兩個(gè)mysql(8.0和5.7),并同時(shí)使用
  3. tar.xz文件如何解壓
  4. linux mysql8 初始密碼修改
  5. linux下查看mysql端口號(hào)和修改端口號(hào)方法

我是 fx67ll.com,如果您發(fā)現(xiàn)本文有什么錯(cuò)誤,歡迎在評(píng)論區(qū)討論指正,感謝您的閱讀!
如果您喜歡這篇文章,歡迎訪問(wèn)我的 本文github倉(cāng)庫(kù)地址,為我點(diǎn)一顆Star,Thanks~ :)
轉(zhuǎn)發(fā)請(qǐng)注明參考文章地址,非常感謝?。?!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容