最近需要使用mysql8.0版本,但是原本的mysql5.7版本已經(jīng)被多個(gè)服務(wù)依賴,于是想想能不能同一臺(tái)服務(wù)器裝多個(gè)版本的mysql,一查確實(shí)可行,這里做一個(gè)記錄方便自己后期回憶
閱讀本文前請(qǐng)注意!??!
- 本文是幫助您建立在
mysql5.7版本已經(jīng)安裝完成并在運(yùn)行中,另外安裝配置mysql8.0版本 - 如果需要同時(shí)安裝兩個(gè)版本,可以先查閱我之前所寫(xiě)關(guān)于
mysql5.7版本的安裝,完成后再按本文繼續(xù)操作即可
安裝環(huán)境
CentOS7 + MySQL8.0
下載安裝包
- 點(diǎn)擊進(jìn)入MySQL Community Server 8.0.29 官網(wǎng)下載地址
- 點(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
- 解壓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/
- 賦予權(quán)限
chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64 - 修改配置文件
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 - 賦予配置文件權(quán)限
chmod 755 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf - 修改連接服務(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 - 復(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 - 初始化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: 初始密碼
- 啟動(dòng)mysql80服務(wù)
service mysql80 start,然后要記得開(kāi)放防火墻的3307端口才能使用外部連接 - 登錄
/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql --socket=/tmp/mysql80.sock -u root -p'初始密碼' - 重置密碼,登錄后依次執(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;
- 查看占用端口
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
- 停止服務(wù):
開(kāi)啟3307端口流程
-
cd /etc/sysconfig進(jìn)入該目錄,檢查是否存儲(chǔ)了iptables文件 -
vim iptables使用vim編輯器修改iptables文件,按下i進(jìn)入編輯模式 - 在初始端口那行下面添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3307 -j ACCEPT,開(kāi)放3307端口 -
service iptables restart重啟防火墻即可
如何mysql80服務(wù)啟動(dòng)失敗
可以參考一下步驟重新初始化數(shù)據(jù)庫(kù),親測(cè)有效
- 刪除data文件夾
rm -rf /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data - 新建data目錄
mkdir /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data - 賦予權(quán)限
chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64 - 重新初始化
/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 - 測(cè)試啟動(dòng)服務(wù)
service mysql80 start,成功即可
參考文檔
- linux 下同時(shí)安裝 mysql5.7 和 mysql8.0
- linux安裝兩個(gè)mysql(8.0和5.7),并同時(shí)使用
- tar.xz文件如何解壓
- linux mysql8 初始密碼修改
- 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)注明參考文章地址,非常感謝?。?!