基於centos7的MySQL8.0二進位制安裝包的邏輯升級

龍山游龍發表於2021-07-27

升級資料庫

邏輯升級涉及使用備份或匯出實用程式從舊的MySQL 例項匯出 SQL,安裝新的 MySQL 伺服器,並將 SQL 應用到您的新 MySQL 例項中。

1.1升級前準備

開啟mysql官網下載頁面: ,下載要升級的對應版本的資料庫,並上傳到指定目錄。

檢查你的升級路徑,資料庫升級不支援跳過版本的升級,例如,不支援直接從MySQL 5.5升級到8.0。建議先升級到最新版本,再升級到下一版本。支援在發行系列中進行升級。

檢查你的配置檔案,檢視引數設定是否與新版本的資料庫相容。

1.2備份資料

從舊的 MySQL 安裝匯出您的現有資料

[root@mysql ~]# ./mysql80/app/bin/mysqldump -uroot -pAbcd321# -S /mysql/mysql80/product/data/mysql.sock --add-drop-table --routines --events --all-databases --force > /mysql/mysql80/data-for-upgrade.sql

1.3關閉舊的MySQL伺服器

[root@mysql ~]# /mysql/mysql80/app/bin/mysqladmin -u root -p -S /mysql/mysql80/product/data/mysql.sock shutdown

1.4安裝新的MySQL 

解壓新的資料庫到指定目錄:

[root@mysql ~]# tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz -C /mysql/mysql801/app --strip-components=1

建立新的配置檔案

[root@mysql ~]# mv /etc/my.cnf /etc/my.cnf.bak
[root@mysql ~]# vim /mysql/mysql801/app/my.cnf 
[mysqld]
user=mysql
port=33081
basedir=/mysql/mysql801/app
datadir=/mysql/mysql801/product/data
socket=/mysql/mysql801/product/data/mysql.sock
log_error=/mysql/mysql801/product/data/myerror.log
innodb_file_per_table=1
server_id=801
slow_query_log=1
log-bin=mysql-bin
binlog_format=ROW

實施過程中需要根據實際情況和需求自行新增和調整引數

初始化MySQL8.0:

[root@mysql ~]# cd /mysql/mysql801/app
[root@mysql app]# ./bin/mysqld --defaults-file=/mysql/mysql801/app/my.cnf --initialize 
[root@mysql ~]# tail /mysql/mysql801/product/data/myerror.log
2021-03-03T01:44:49.248365Z 1 [Note] A temporary password is generated for root@localhost: qdcf_Vl>k8LP

獲取資料庫初始登入臨時密碼:qdcf_Vl>k8LP

配置資料庫服務:

[root@mysql ~]# cp /mysql/mysql801/app/support-files/mysql.server /etc/init.d/mysqld801
[root@mysql ~]# vi /etc/init.d/mysqld801
basedir=/mysql/mysql801/app
datadir=/mysql/mysql801/product/data

啟動資料庫:

[root@mysql ~]# /mysql/mysql801/app/bin/mysqld_safe --defaults-file=/mysql/mysql801/app/my.cnf --user=mysql &

修改root使用者密碼:

[root@mysql ~]# /mysql/mysql801/app/bin/mysqladmin -uroot -p"qdcf_Vl>k8LP" -S /mysql/mysql801/product/data/mysql.sock password "Abcd321#"
[root@mysql ~]# mysql -uroot -pAbcd321# -S /mysql/mysql801/product/data/mysql.sock

1.5恢復資料到新資料庫

[root@mysql ~]# mysql -uroot -pAbcd321# -S /mysql/mysql801/product/data/mysql.sock --force < /mysql/mysql80/data-for-upgrade.sql

1.6升級資料庫

在 MySQL 8.0.16 及更高版中,關閉伺服器,然後透過--upgrade=FORCE選項重新啟動伺服器以執行剩餘的升級任務:

[root@mysql ~]# /mysql/mysql801/app/bin/mysqladmin -u root -pAbcd321# -S /mysql/mysql801/product/data/mysql.sock shutdown
[root@mysql ~]# /mysql/mysql801/app/bin/mysqld_safe --user=mysql --datadir=/mysql/mysql801/product/data/ --upgrade=FORCE &

在 MySQL 8.0.16 之前,執行mysql_upgrade以執行剩餘的升級任務:

[root@mysql ~]# /mysql/mysql801/app/bin/mysql_upgrade -u root -p -S /mysql/mysql801/product/data/mysql.sock
[root@mysql ~]# /mysql/mysql801/app/bin/mysqladmin -u root -p shutdown
[root@mysql ~]# /mysql/mysql801/app/bin/mysqld_safe --user=mysql --defaults-file=/mysql/mysql801/app/my.cnf &


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30310891/viewspace-2783508/,如需轉載,請註明出處,否則將追究法律責任。

相關文章