mysql 公升級和降級

2021-09-21 00:13:25 字數 4924 閱讀 9385

1 官方推薦的兩種公升級方式:

in-place upgrade

logical upgrade

2 公升級之前:

備份所有資料庫,包括系統庫mysql

[root@darren1 ~]# mysqldump -uroot -p147258 -a -b  -f --master-data=2 --events --single-transaction>/tmp/mysqlall.bak

3公升級演示:5.7.14公升級到5.7.16

方法一: in-place upgrade:

設定資料庫關閉方式為slow方式,快取中的資料在關閉之前全部落地:

[root@darren1 data]# mysql -uroot -p147258 -e 'set global innodb_fast_shutdown=0;'

停止資料庫服務:

[root@darren1 data]# mysqladmin -uroot -p147258 shutdown

[root@darren1 local]# rm -rf /usr/local/mysql

[root@darren1 local]# ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql

啟動資料庫服務:

[root@darren1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &

檢查所有庫中所有表的相容性:

[root@darren2 data]# mysql_upgrade -uroot -p147258

檢查結束後會在datadir目錄下生成mysql_upgrade_info檔案,記錄了資料庫版本。

停止資料庫服務:

[root@darren1 data]# mysqladmin -uroot -p147258 shutdown

啟動資料庫服務:

[root@darren1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &

把啟動5.7.16的啟動指令碼mysql.server複製到/etc/init.d/下,替代舊的mysqld.

[root@darren1 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

方法二:logical-upgrade

把mysql所有庫匯出來:

[root@darren1 local]# mysqldump -uroot -p --add-drop-table --routines --events --all-databases --force >/tmp/data-for-upgrade.sql

停資料庫服務:

[root@darren1 local]# mysqladmin -uroot -p shutdown

建立新的目錄存放5.7.16:

[root@darren1 ]# mkdir -p /data/mysql/mysql3307/

[root@darren1 data]# chown -r mysql:mysql /data/mysql/mysql3307

刪除舊的軟鏈結,重新建立軟連線:

[root@darren1 mysql]# ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql

複製新的配置檔案,並修改埠號為3307:

[root@darren2 mysql3307]# cp /etc/my.cnf /data/mysql/mysql3307/my3307.cnf

[root@darren2 mysql3307]# sed -i 's#3306#3307#g' my3307.cnf

指定配置檔案初始化:

[root@darren1 bin]# ./mysqld --initialize --defaults-file=/data/mysql/mysql3307/my3307.cnf 

檢視錯誤日誌,找到密碼:

[root@darren1 bin]# cat /data/mysql/mysql3307/data/error.log |grep password

2016-11-24t14:35:59.219125z 1 [note] a temporary password is generated for root@localhost: ku+ve&lo6a/j

指定3307配置檔案,啟動資料庫服務:

[root@darren1 bin]# ./mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &

指定sock檔案登陸,輸入前面檢視的密碼:

[root@darren1 bin]# mysql -uroot -p -s /tmp/mysql3307.sock

enter password:   

重新修改密碼:

mysql>alter user user() identified by '147258';

匯入之前備份資料:

[root@darren1 bin]# mysql -uroot -p -s /tmp/mysql3307.sock --force

檢查相容性:

[root@darren1 bin]# mysql_upgrade -uroot -p -s /tmp/mysql3307.sock

關閉伺服器:

[root@darren1 bin]# mysqladmin -uroot -p shutdown -s /tmp/mysql3307.sock

用5.7.16二進位製包重新建立3307例項,把舊的5.7.14版本的3306例項資料匯出,然後匯入3307例項中,測試3307例項確保沒有問題,然後刪除3306例項,把3307例項埠改為3306.

4 降級演示:5.7.16降級5.7.14

方法一:in-place downgrade

設定資料庫關閉方式:

[root@darren1 local]# mysql -uroot -p -e 'set global innodb_fast_shutdown=0;'                       

停止資料庫服務:

[root@darren1 local]# mysqladmin -uroot -p shutdown

刪除redolog檔案:

[root@darren1 data]# rm -rf /data/mysql/mysql3306/data/ib_logfile*

刪除5.7.16軟鏈結,並重新建立5.7.14軟連線:

[root@darren1 local]# rm -rf /usr/local/mysql

[root@darren1 local]# ln -s /opt/mysql/mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql

啟動資料庫服務:

[root@darren1 local]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &

降級檢查:

[root@darren1 local]# mysql_upgrade -uroot -p

停止資料庫服務,重新啟動資料庫服務:

[root@darren1 local]# mysqladmin -uroot -p shutdown

[root@darren1 local]# mysqld_safe --user=mysql --datadir=/data/mysql/mysql3306/data &

方法二:logical downgrade

備份降級前的所有庫和表:

[root@darren1 ~]# mysqldump -uroot -p147258 --add-drop-table --routines --events --all-databases --force> /tmp/data-for-downgrade.sql

初始化:

[root@darren1 bin]# ./mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf --initialize

[root@darren1 bin]# ./mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &

[root@darren1 bin]# mysql -uroot -p -s /tmp/mysql3307.sock

mysql>alter user user() identified by '147258';

[root@darren1 bin]# ./mysql -uroot -p147258 -s /tmp/mysql3307.sock[root@darren1 bin]# ./mysql_upgrade -uroot -p147258 --skip-version-check -s /tmp/mysql3307.sock

服務的公升級和降級

1.開關 先講一下開關的由來,例如京東在6月18日做店慶 活動,在交易下單環節,可能需要呼叫a b c三個介面來完成,但是其實a和b是必須的,c只是附加的功能 例如在下單的時候做一下推薦 可有可無,在平時系統沒有壓力,容量充足的情況下,呼叫下沒問題,但是在類似店慶之類的大促環節,系統已經滿負荷了,這...

openssl公升級降級

wget 2 安裝到 usr local ssl 目錄下 tar zxvf openssl 1.0.2d.tar.gz cd openssl 1.0.2d config prefix usr local ssl make make install mv f usr bin openssl usr b...

Linux openssl 公升級 降級

2.解壓包,安裝到 usr local ssl 目錄下 tar zxvf openssl 1.0 2d.tar.gz cd openssl 1.0 2d.config prefix usr local ssl make make install 3.將舊的openssl執行檔案及目錄重命令 mv f...