因爲現有業務架構已不能知足當前業務需求,在保證數據完整的前提下,現須要將原有數據庫遷移到另一臺單獨的服務器上,在保證原有服務正常的狀況下,將原有LAMP環境中mysql數據庫版本5.6.31升級爲5.6.35.php
在業務維護時間(02:00-4:00)段對數據庫進行全量備份html
將MySQL數據庫從原有服務器遷移到新服務器上而且升級版本爲5.6.35前端
新服務器安裝Centos7.5,而且安裝MySQL-5.6.35版本數據庫mysql
中止監控、中止前端應用、中止MySQL數據庫linux
備份數據庫(省略)web
遷移數據庫——>同步數據庫文件到新的環境中(rsync/scp)sql
測試驗證數據庫
操做系統版本apache |
數據庫版本vim |
應用說明 |
IP地址 |
主機名 |
|
老環境 |
Centos-6.9 |
MySQL-5.6.31 |
LAMP環境 |
10.1.1.19 |
lamp.itcast.cn |
新環境 |
Centos-7.5 |
MySQL-5.6.35 |
MySQL數據庫 |
10.1.1.37 |
db01.itcast.cn |
1) 中止監控
略
2) 中止應用服務apache和數據庫
[root@lamp ~]# service httpd stop
[root@lamp ~]# service mysql stop
Shutting down MySQL.. SUCCESS!
# du -sh mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
301M mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
安裝目錄(basedir):/usr/local/mysql
數據庫目錄(datadir):/usr/local/mysql/data
端口:3306
socket文件:/tmp/mysql.sock
錯誤日誌文件:/usr/local/mysql/data/mysql.err
# 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
注意:進入到/usr/local目錄裏軟鏈接
1. 查看用戶是否存在
[root@db01 mysql]# id mysql
id: mysql: no such user
[root@db01 mysql]# useradd -r -s /sbin/nologin mysql
[root@db01 mysql]# id mysql
uid=997(mysql) gid=995(mysql) 組=995(mysql)
2. 更改mysql的安裝目錄的權限
[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/
修改/etc/my.cnf文件
[root@db01 mysql]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3307
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/mysql3307.err
[root@db01 mysql]# pwd
/usr/local/mysql
[root@db01 mysql]# cp support-files/mysql.server /etc/init.d/mysql
正常安裝新數據庫直接使用,是須要初始化數據庫而後再啓動使用
當前需求是將原來MySQL數據庫文件遷移到新的數據庫的數據目錄裏,故不須要初始化
說明:新數據庫服務器上操做
[root@db01 mysql]# rsync -av 10.1.1.1:/usr/local/mysql/data/ /usr/local/mysql/data
直接啓動新的數據庫,而且檢查日誌文件(查看是否有選項不兼容)
[root@db01 mysql]# service mysql start
使用mysql_upgrade命令檢查數據文件的兼容性
[root@db01 ~]# /usr/local/mysql/bin/mysql_upgrade -S /tmp/mysql.sock -p123
注意:
1. 在實際的環境中,建議使用-s參數,不檢查業務表,只檢查系統文件
2. 升級是須要鏈接數據庫的,-p密碼 -S指定socket文件
[root@db01 mysql]# /usr/local/mysql/bin/mysql_upgrade -p
Enter password:
Looking for 'mysql' as: /usr/local/mysql/bin/mysql
Looking for 'mysqlcheck' as: /usr/local/mysql/bin/mysqlcheck
Error: Failed while fetching Server version! Could be due to unauthorized access.
FATAL ERROR: Upgrade failed
緣由:鏈接數據庫失敗
[root@lamp ~]# find / -name php.ini
/usr/local/lib/php.ini
[root@lamp ~]# vim /usr/local/lib/php.ini
[MySQL]
mysql.default_port = 3306
mysql.default_host = 10.1.1.37
[MySQLi]
mysql.default_port = 3306
mysql.default_host = 10.1.1.37
修改www.myblog.net網站所在數據庫目錄的配置文件
[root@lamp www]# pwd
/var/html/www
[root@lamp www]# vim wp-config.php
...
// ** MySQL 設置 - 具體信息來自您正在使用的主機 ** //
/** WordPress數據庫的名稱 */
define('DB_NAME', 'myblog');
/** MySQL數據庫用戶名 */
define('DB_USER', 'root');
/** MySQL數據庫密碼 */
define('DB_PASSWORD', '123');
/** MySQL主機 */
define('DB_HOST', '10.1.1.37');
/** 建立數據表時默認的文字編碼 */
define('DB_CHARSET', 'utf8');
新的mysql數據庫須要給root@10.1.1.19用戶受權
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所有關閉掉,否則打死都鏈接不上!
[root@lamp ~]# service apache start
[root@lamp ~]# netstat -nltp|grep httpd
tcp 0 0 :::80 :::* LISTEN 1376/httpd
1.瀏覽器訪問
2. web服務器上使用mysql工具遠程訪問
[root@lamp ~]# mysql -uroot -h10.1.1.37 -uroot -p123