標籤:mysql replicate
環境為主庫是111.111.111.110 從庫為111.111.111.111
1. 主庫建立資料庫複寫專用使用者
--在主庫上執行,建立使用者repl
mysql –uroot
grant replication slave,replication client on *.* to [email protected]‘111.111.111.%‘ identified by ‘repl‘;
exit;
--修改設定檔/etc/my.cnf
cp /etc/my.cnf /etc/my.cnf.bak
vi /etc/my.cnf
修改主庫參數如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
log-bin=mysql-bin
old_passwords=1
server_id = 110
sync_binlog = 1
relay_log = /var/lib/mysql/mysql-relay-bin
# enable log_slave_updates
log_slave_updates = 1
skip_slave_start
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2.關閉資料庫
--在主庫上執行
service mysqld stop
3.備份主庫
--在主庫上執行
tar zcvf /tmp/mysql.tar.gz /var/lib/mysql
4.將主庫的備份傳送到從庫
--在主庫上執行
rsync -auzvP --bwlimit=10240 /tmp/mysql.tar.gz 111.111.111.111: /tmp/mysql.tar.gz
rsync –auzvP --bwlimit=1024 /etc/my.cnf 111.111.111.111:/etc/my.cnf
5.在備庫恢複主庫的備份
--在備庫執行
mv /var/lib/mysql /var/lib/mysqlbak
mv /tmp/mysql.tar.gz /var/lib/
tax xvf /var/lib/mysql.tar.gz
6.在備庫修改設定檔/etc/my.cnf
--在備庫執行
--修改設定檔/etc/my.cnf
vi /etc/my.cnf
修改參數如下
[mysqld]
server_id = 111
7.在備庫啟動資料庫
--在備庫執行
service mysqld start
8.在主庫上啟動資料庫
service mysqld start
mysql –uroot –p
show master status;
9.根據上一步擷取到的bin log檔案名稱和position,在備庫啟用複製
--在備庫執行(將命令master_log_file=‘mysql-bin.0000099‘,master_log_pos=5中的值mysql-bin.0000099和0 修改為上一步擷取到的值)
change master to master_host=‘111.111.111.110‘,
master_user=‘repl‘,
master_password=‘repl‘,
master_log_file=‘mysql-bin.00000xx‘,
master_log_pos=0;
--啟動複製進程
start slave;
show slave status\G
show processlist\G
本文出自 “ORACLE/DB2/MYSQL” 部落格,謝絕轉載!
一個mysql主從複製的配置案例