MySQL遷移升級解決方案

  任務背景php

  

MySQL遷移升級解決方案

 

  因爲現有業務架構已不能知足當前業務需求,在保證數據完整的前提下,現須要將原有數據庫遷移到另一臺單獨的服務器上,在保證原有服務正常的狀況下,將原有LAMP環境中mysql數據庫版本5.6.31升級爲5.6.35.html

  任務要求前端

  1. 在業務維護時間(02:00-4:00)段對數據庫進行全量備份mysql

  2. 將MySQL數據庫從原有服務器遷移到新服務器上而且升級版本爲5.6.35linux

  任務拆解web

  1. 新服務器安裝Centos7.5,而且安裝MySQL-5.6.35版本數據庫sql

  2. 中止監控、中止前端應用、中止MySQL數據庫數據庫

  3. 備份數據庫(省略)apache

  4. 遷移數據庫——>同步數據庫文件到新的環境中(rsync/scp)vim

  5. 測試驗證

  任務解決方案

  環境說明

  

MySQL遷移升級解決方案

 

  具體步驟

  1. 老環境中止相應服務

  1) 中止監控略2) 中止應用服務apache和數據庫[root@lamp ~]# service httpd stop[root@lamp ~]# service mysql stopShutting down MySQL.. SUCCESS!

  2. 新環境部署安裝MySQL

  ① 官網下載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數據庫目錄(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注意:進入到/usr/local目錄裏軟鏈接

  2) 建立用戶並修改目錄權限

  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的安裝目錄的權限[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) 初始化說明無錫看男科醫院哪家好 https://yyk.familydoctor.com.cn/20612/

  1. 正常安裝新數據庫直接使用,是須要初始化數據庫而後再啓動使用

  2. 當前需求是將原來MySQL數據庫文件遷移到新的數據庫的數據目錄裏,故不須要初始化

  3. 遷移數據庫到新環境

  說明:新數據庫服務器上操做

  ① 同步老庫數據文件到新庫數據目錄裏

  [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 -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緣由:鏈接數據庫失敗

  4. 原web服務鏈接新數據庫(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

  ② 修改網站配置文件鏈接數據庫

  修改數據庫目錄的配置文件[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');

  ③ 新數據庫受權爲web服務

  新的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所有關閉掉,否則打死都鏈接不上!

  ④ 啓動web服務

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

  ⑤ 測試驗證

  1.瀏覽器訪問2. web服務器上使用mysql工具遠程訪問[root@lamp ~]# mysql -uroot -h10.1.1.37 -uroot -p123

相關文章
相關標籤/搜索