MySQL主從同步

來源:互聯網
上載者:User

標籤:

my.cnf設定檔 /etc/my.cnfmysql資料庫位置 datadir=/var/lib/mysql1,修改mysql資料庫的資料檔案儲存路徑cp /usr/share/mysql/my-default.cnf /etc/my.cnf (如果/etc下沒有my.cnf)停用mysqlservice mysql stop檢查是否已全關閉:ps -ef |grep mysql建立資料目錄:mkdir -p /data/db/mysql拷貝整個/var/lib/mysql目錄:cp -r /var/lib/mysql/* /data/db/mysql/備份之前的mysql: mv /var/lib/mysql /var/lib/mysql.back建立mysql目錄:mkdir /var/lib/mysql修改設定檔:vim /etc/my.cnf 配置如下:[client]#socket  = /data/db/mysql/mysql.sock[mysqld]datadir = /data/db/mysql# port = 3306#socket  = /data/db/mysql/mysql.sock建立軟串連:ln -s /var/lib/mysql/mysql.sock /data/db/mysql/mysql.sock修改目錄許可權:chown -R mysql:mysql /data/db/mysqlchown -R mysql:mysql /var/lib/mysql重啟MySQL服務:service mysql start如果能啟動成功說明配置正確,否則請重新設定並檢查許可權問題(貌似php也有影響,沒有驗證過:修改/etc/php.ini# 找到mysql.default_socket =# 改為mysql.default_socket = /data/mysql/mysql.sock)2,配置主從同步 在主伺服器上建立同步帳號GRANT REPLICATION SLAVE,FILE ON *.* TO ‘replication‘@‘10.1.1.%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;//GRANT ALL PRIVILEGES ON *.* TO ‘mvcUser‘@"%" IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;FLUSH PRIVILEGES; 如果有多台需要同步,就需要建立多個帳號GRANT REPLICATION SLAVE ON *.* TO ‘synchronous101‘@‘10.169.111.66‘ IDENTIFIED BY ‘XXXXXX‘;FLUSH PRIVILEGES; 賦予從機許可權,有多台從機,就執行多次檢查建立是否成功select user,host from mysql.user;修改主伺服器的配置vim /etc/my.cnf[mysqld] server-id=1 # 主機標示,整數#log-bin=mysql-binlog-bin=/data/db/mysql/binlog/mysql-binlog # 開啟bin-log(路徑要根據自己的安裝設定,確保此檔案可寫)binlog-do-db=vragon_debug # 要同步的資料庫名,多個寫多行binlog-ignore-db=mysql #不需要備份的資料庫,多個寫多行binlog-ignore-db=performance_schemabinlog-ignore-db=information_schema#read-only=0 # 主機,讀寫都可以mkdir -p /data/db/mysql/binlogchown -R mysql:mysql /data/db/mysql/binlog重啟mysql:service mysql restart登入主要資料庫,進行鎖表,停止更新mysql -uroot -pmysql> flush tables with read lock;show master status\G; 或 show master status;*************************** 1. row *************************** File: mysql-binlog.000001 Position: 120 Binlog_Do_DB: vragon_debug Binlog_Ignore_DB: mysql,performance_schema,information_schemaExecuted_Gtid_Set: 1 row in set (0.00 sec)記下File和Position, 設定從伺服器的時候要用# 說明,如果執行這個步驟始終為Empty set(0.00 sec),那說明前面的my.cnf沒配置對。新開一個終端,直接匯出資料:mysqldump --add-drop-table -h 127.0.0.1 -u root -p vragon_debug > /data/db/back/vragon_debug_2015-02-04.sql(#僅僅備份資料庫結構:#mysqldump -uroot -p --no-data --databases databasename1 databasename2 databasename3 > /data/db/back/structurebackupfile.sql#備份伺服器上所有資料庫:#mysqldump -uroot -p --all-databases > /data/db/back/allbackup.sql)主要資料庫備份完畢,恢複寫操作mysql> unlock tables;mysql> quit;下面對從庫進行設定傳輸資料包到從資料庫,並在從庫進行資料恢複scp -rvp vragon_debug_2015-02-04.sql [email protected]:/data/db/back登入從資料庫mysql -uroot -p建立資料庫:mysql> CREATE DATABASE `vragon_debug` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;還原資料庫資料mysql -hlocalhost -uroot -p vragon_debug < /data/db/back/vragon_debug_2015-02-04.sql(使用資料庫:USE `mysql`;還原壓縮的MySQL資料庫gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename將資料庫轉移到新伺服器mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename)修改從庫配置:vim /etc/my.cnf[mysqld] server-id=2 log-bin=/data/db/mysql/binlog/slave_mysql_binlog#binlog-do-db = dbname # 要同步的資料庫名replicate-do-db=vragon_debug # 只複製某個庫binlog-ignore-db=mysql # 不複製某個庫binlog-ignore-db=information_schema # 或 replicate-ignore-db=mysqlbinlog-ignore-db=performance_schema#slave-skip-errors=all # 最好別跳過錯誤#master-host=10.169.123.186 # ip、 使用者名稱、 密碼 可以不用在這裡設#master-user=synchronous101#master-password=123456#log-slave-updates # 不懂slave-net-timeout=60 # 如果從伺服器發現主伺服器斷掉,重新串連的時間差(秒)#master-connect-retry=60 # 重聯最大次數mkdir -p /data/db/mysql/binlog/chown -R mysql:mysql /data/db/mysql/binlog/重啟從庫:service mysql restart驗證是否能連結上主庫:mysql -h 10.169.123.186 -u synchronous101 -p登入從資料庫進行操作:mysql -uroot -pmysql> stop slave;mysql> change master to master_host=‘10.169.123.186‘, master_user=‘synchronous101‘, master_password=‘XXXXXX‘, master_log_file=‘mysql-binlog.000001‘, master_log_pos=120;mysql> start slave;mysql> unlock tables;mysql> show slave status\G;Slave_IO_Running: YesSlave_SQL_Running: Yes如果上面兩行為yes說明已經配置成功了。至此,主從資料庫同步配置完成。可以對主要資料庫進行增(INSERT)刪(DELETE)改(UPDATE)查操作,然後驗證是否同步成功!

MySQL主從同步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.