一個mysql主從複製的配置案例

環境爲主庫是111.111.111.110 從庫爲111.111.111.111

1.  主庫創建數據庫複製專用用戶

 

--在主庫上執行,創建用戶repl

mysql uroot

grant replication slave,replication client on *.* to repl@'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

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章