溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL遷移升級解決方案

發(fā)布時間:2020-08-18 08:28:14 來源:ITPUB博客 閱讀:152 作者:angle 欄目:MySQL數(shù)據(jù)庫

任務(wù)背景


MySQL遷移升級解決方案

由于現(xiàn)有業(yè)務(wù)架構(gòu)已不能滿足當(dāng)前業(yè)務(wù)需求,在保證數(shù)據(jù)完整的前提下,現(xiàn)需要將原有數(shù)據(jù)庫遷移到另外一臺單獨(dú)的服務(wù)器上,在保證原有服務(wù)正常的情況下,將原有LAMP環(huán)境中mysql數(shù)據(jù)庫版本5.6.31升級為5.6.35.

任務(wù)要求

1. 在業(yè)務(wù)維護(hù)時間(02:00-4:00)段對數(shù)據(jù)庫進(jìn)行全量備份

2. 將MySQL數(shù)據(jù)庫從原有服務(wù)器遷移到新服務(wù)器上并且升級版本為5.6.35

任務(wù)拆解

1. 新服務(wù)器安裝Centos7.5,并且安裝MySQL-5.6.35版本數(shù)據(jù)庫

2. 停止監(jiān)控、停止前端應(yīng)用、停止MySQL數(shù)據(jù)庫

3. 備份數(shù)據(jù)庫(省略)

4. 遷移數(shù)據(jù)庫——>同步數(shù)據(jù)庫文件到新的環(huán)境中(rsync/scp)

5. 測試驗(yàn)證

任務(wù)解決方案

環(huán)境說明

MySQL遷移升級解決方案

具體步驟

1. 老環(huán)境停止相應(yīng)服務(wù)

1) 停止監(jiān)控略2) 停止應(yīng)用服務(wù)apache和數(shù)據(jù)庫[root@lamp ~]# service httpd stop[root@lamp ~]# service mysql stopShutting down MySQL.. SUCCESS!

2. 新環(huán)境部署安裝MySQL

① 官網(wǎng)下載mysql軟件

# du -sh mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz301M mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

② 安裝需求

安裝目錄(basedir):/usr/local/mysql數(shù)據(jù)庫目錄(datadir):/usr/local/mysql/data端口:3306socket文件:/tmp/mysql.sock錯誤日志文件:/usr/local/mysql/data/mysql.err

③ glibc方式安裝步驟

1) 解壓軟件包

# tar -xf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz# cd /usr/local/# ln -s /soft/installer/mysql-5.6.35-linux-glibc2.5-x86_64 mysql注意:進(jìn)入到/usr/local目錄里軟連接

2) 創(chuàng)建用戶并修改目錄權(quán)限

1. 查看用戶是否存在[root@db01 mysql]# id mysqlid: mysql: no such user[root@db01 mysql]# useradd -r -s /sbin/nologin mysql[root@db01 mysql]# id mysqluid=997(mysql) gid=995(mysql) 組=995(mysql)2. 更改mysql的安裝目錄的權(quán)限[root@db01 mysql]# chown -R mysql.mysql /usr/local/mysql/[root@db01 mysql]# ll -d /usr/local/mysql/drwxr-xr-x 13 mysql mysql 191 10月 9 10:26 /usr/local/mysql/

3) 修改配置文件

修改/etc/my.cnf文件[root@db01 mysql]# vim /etc/my.cnf[mysqld]basedir=/usr/local/mysqldatadir=/usr/local/mysql/dataport=3307socket=/usr/local/mysql/mysql.socklog-error=/usr/local/mysql/data/mysql3307.err

4) 拷貝啟動腳本

[root@db01 mysql]# pwd/usr/local/mysql[root@db01 mysql]# cp support-files/mysql.server /etc/init.d/mysql

5) 初始化說明

1. 正常安裝新數(shù)據(jù)庫直接使用,是需要初始化數(shù)據(jù)庫然后再啟動使用

2. 當(dāng)前需求是將原來MySQL數(shù)據(jù)庫文件遷移到新的數(shù)據(jù)庫的數(shù)據(jù)目錄里,故不需要初始化

3. 遷移數(shù)據(jù)庫到新環(huán)境

說明:新數(shù)據(jù)庫服務(wù)器上操作

① 同步老庫數(shù)據(jù)文件到新庫數(shù)據(jù)目錄里

[root@db01 mysql]# rsync -av 10.1.1.1:/usr/local/mysql/data/ /usr/local/mysql/data

② 啟動新數(shù)據(jù)庫

直接啟動新的數(shù)據(jù)庫,并且檢查日志文件(查看是否有選項(xiàng)不兼容)[root@db01 mysql]# service mysql start

③ 升級數(shù)據(jù)庫(重點(diǎn),升級數(shù)據(jù)庫文件)

使用mysql_upgrade命令檢查數(shù)據(jù)文件的兼容性[root@db01 ~]# /usr/local/mysql/bin/mysql_upgrade -S /tmp/mysql.sock -p123注意:1. 在實(shí)際的環(huán)境中,建議使用-s參數(shù),不檢查業(yè)務(wù)表,只檢查系統(tǒng)文件2. 升級是需要連接數(shù)據(jù)庫的,-p密碼 -S指定socket文件[root@db01 mysql]# /usr/local/mysql/bin/mysql_upgrade -pEnter password:Looking for 'mysql' as: /usr/local/mysql/bin/mysqlLooking for 'mysqlcheck' as: /usr/local/mysql/bin/mysqlcheckError: Failed while fetching Server version! Could be due to unauthorized access.FATAL ERROR: Upgrade failed原因:連接數(shù)據(jù)庫失敗

4. 原web服務(wù)連接新數(shù)據(jù)庫(LAMP=>LNMP)

① 修改php連接mysql的配置文件(如果有)

[root@lamp ~]# find / -name php.ini/usr/local/lib/php.ini[root@lamp ~]# vim /usr/local/lib/php.ini[MySQL]mysql.default_port = 3306mysql.default_host = 10.1.1.37[MySQLi]mysql.default_port = 3306mysql.default_host = 10.1.1.37

② 修改網(wǎng)站配置文件連接數(shù)據(jù)庫

修改www.myblog.net網(wǎng)站所在數(shù)據(jù)庫目錄的配置文件[root@lamp www]# pwd/var/html/www[root@lamp www]# vim wp-config.php...// ** MySQL 設(shè)置 - 具體信息來自您正在使用的主機(jī) ** ///** WordPress數(shù)據(jù)庫的名稱 */define('DB_NAME', 'myblog');/** MySQL數(shù)據(jù)庫用戶名 */define('DB_USER', 'root');/** MySQL數(shù)據(jù)庫密碼 */define('DB_PASSWORD', '123');/** MySQL主機(jī) */define('DB_HOST', '10.1.1.37');/** 創(chuàng)建數(shù)據(jù)表時默認(rèn)的文字編碼 */define('DB_CHARSET', 'utf8');

③ 新數(shù)據(jù)庫授權(quán)為web服務(wù)

新的mysql數(shù)據(jù)庫需要給root@10.1.1.19用戶授權(quán)mysql> grant all on *.* to 'root'@'10.1.1.19' identified by '123';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)注意:把防火墻firewalld和selinux全部關(guān)閉掉,不然打死都連接不上!

④ 啟動web服務(wù)

[root@lamp ~]# service apache start[root@lamp ~]# netstat -nltp|grep httpdtcp 0 0 :::80 :::* LISTEN 1376/httpd

⑤ 測試驗(yàn)證

1.瀏覽器訪問2. web服務(wù)器上使用mysql工具遠(yuǎn)程訪問[root@lamp ~]# mysql -uroot -h20.1.1.37 -uroot -p123

學(xué)習(xí)資源:

5 天玩轉(zhuǎn) MySQL

https://pan.baidu.com/s/1Cb1eGwb4dn45I4tbQ2Ggzg   提取碼:yfw6 

https://pan.baidu.com/s/1qXYYhcS   提取碼: mkqu

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI