linux mysql5.7升級到mysql8.0

linux mysql5.7升級到mysql8.0

操作步驟:
1.首先對mysql5.7的表數(shù)據和結構做全量備份
2.刪除mysql5.7,清除log=/var/log/mysqld.log和Datadir=/var/lib/MySQL的數(shù)據,其中l(wèi)og、datadir的路徑在/etc/my.cnf中可以找到;
3.安裝數(shù)據庫mysql8.0
4.數(shù)據回導,把步驟一備份的數(shù)據導入新的數(shù)據庫中。

(1)升級前需要備份數(shù)據庫

mysql -e "show databases;" -uroot -p| grep -Ev "Database|information_schema|mysql|test|performance_schema|sys" | xargs mysqldump -uroot -p --databases > /home/kingstar/data-for-upgrade.sql
# 此命令是將除information_schema|mysql|test|performance_schema|sys庫之外的數(shù)據全部導出到/home/kingstar/data-for-upgrade.sql

復制

(2)刪除mysql5.7,清除log=/var/log/mysqld.log和Datadir=/var/lib/MySQL的數(shù)據 依次執(zhí)行:

rpm -e --nodeps `rpm -qa | grep mysql` 
rpm -e --nodeps `rpm -qa | grep MySQL`
rpm -e --nodeps `rpm -qa | grep mariadb`

復制

log、datadir中的數(shù)據清除: 其中l(wèi)og、datadir的路徑在/etc/my.cnf中可以找到,log=/var/log/mysqld.log Datadir=/var/lib/MySQL 首先查看目錄是否有目標文件,然后執(zhí)行以下三行: 執(zhí)行命令: echo > /var/log/mysqld.log 執(zhí)行命令: cd /var/lib/MySQL 清空歷史數(shù)據:rm -rf ./*

(3)安裝數(shù)據庫mysql8.0 解壓安裝包 切換工作目錄: cd /home/kingstar/program/software mkdir mysql 解壓 tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar -C /home/kingstar/program/software/mysql cd mysql
mysql用戶初始化 檢查用戶組是否存在:cat /etc/group | grep mysql 創(chuàng)建mysql用戶: sudo groupadd mysql sudo useradd -r -g mysql mysql -----r參數(shù)表示mysql用戶是系統(tǒng)用戶,不可用于登錄系統(tǒng)

服務安裝 執(zhí)行 sudo rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm 執(zhí)行 sudo rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm 執(zhí)行 sudo rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm 執(zhí)行 sudo rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm 注:如果安裝 server RPM包報 libaio 錯誤時下載 http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.107-10.el7.x86_64.rpm 執(zhí)行 rpm -ivh libaio-0.3.107-10.el7.x86_64.rpm 進行安裝后再執(zhí)行
服務啟動 首先需要修改配置文件: vi /etc/my.cnf 新增內容: lower_case_table_names=1 sql_mode='NO_ENGINE_SUBSTITUTION' max_connect_errors=1000 執(zhí)行啟動命令: systemctl start mysqld.service 檢查: 如果出現(xiàn)如下內容則表示啟動成功

image.png

初始化數(shù)據庫:
1.Mysql初始密碼:執(zhí)行 grep 'temporary password' /var/log/mysqld.log 下圖紅框中的內容即為MySQL密碼

image.png

2.mysql -uroot -p 進入控制臺(密碼復制上圖紅框內容后,用復制輸入)
3.修改密碼: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mysql2020!';(此處必須修改,必須用alert user)
4.執(zhí)行命令:update mysql.user set host = '%' where user = 'root';
5.執(zhí)行命令生效:flush privileges;
6.退出mysql控制臺:exit
7.重啟mysql 即可: systemctl restart mysqld.service

(4)數(shù)據回導 執(zhí)行mysql -uroot -p 進入mysql控制臺后使用 source /home/kingstar/data-for-upgrade.sql 導入即可

轉自:https://cloud.tencent.com/developer/article/1849474

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容