環境:mysql
主庫:192.168.1.1sql
從庫:192.168.1.2數據庫
yum install wget服務器
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupide
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo測試
mv CentOS6-Base-163.repo /etc/yum.repos.d/CentOS-Base.reporest
yum clean all日誌
yum makecacheserver
過程簡述:get
一、安裝mysql-server
二、定義主從庫,即server-id
三、在 mysql 的配置文件中定義二進制日誌文件的路徑和名稱
四、依次重啓主庫和從庫
五、在主庫上建立一個具備複製權限的遠程登陸用戶
六、備份主庫,清空從庫
七、在從庫上還原主庫備份
八、查看主庫狀態,記錄主庫二進制日誌的徹底名稱和position值
九、登錄從庫上使用change命令動態鏈接到主庫
十、查看從庫狀態,【Slave_IO_Running】和【Slave_SQL_Running】爲Yes,則主從配置成功
開始同步主庫
1. 安裝 mysql
yum install -y mysql-server
2.定義server_id,ID值不能同樣
master:
server-id=1
slave:
server-id=2
3. 修改 mysql 的配置文件(/etc/my.cnf)加上以下內容:
master:
server-id=1
log-bin=binlog
###啓用二進制日誌
slave:
server-id=2
relay_log=/var/lib/mysql/mysql-relay-bin
relay_log_index=/var/lib/mysql/mysql-relay-bin.index
4. 修改後重啓 mysql 服務 【先主後從】:
/etc/init.d/mysqld restart
5. 在 master 上進入到 mysql 進行以下操做:
mysql>
grant replication slave on *.* to 'kkk'@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql>
flush privileges;
Query OK, 0 rows affected (0.00 sec)
##建立一個能夠遠程登陸的用戶,並賦予給它 replication slave 權限。
6. 在 slave1 上進行以下操做:
cd /var/lib/mysql
rm -rf *
/etc/init.d/mysqld restart
7. 在 master 上進行以下操做:
mysqldump -A -x --events > /tmp/backup.sql
##-x 鎖表
scp /tmp/backup.sql root@192.168.1.2:/tmp/
##將備份文件拷貝到 slave1 服務器上。
8. 在 slave1 上進行以下操做:
mysql < /tmp/backup.sql
##在 slave1 上進行數據庫還原操做。
9. 在 master 上進行以下操做:
mysql>
flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql>
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000003 | 420724 | | |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql>
unlock tables;
Query OK, 0 rows affected (0.00 sec)
10. 在 slave1 上測試是否可以鏈接到 master 上
mysql -u kkk -p123 -h 192.168.1.1
11. 在 slave1 上進行以下操做:
mysql>
change master to master_host='192.168.1.1',master_port=3306,master_user='kkk',master_password='123',master_log_file='binlog.000003',master_log_pos=420724;
Query OK, 0 rows affected (0.03 sec)
mysql>
start slave;
Query OK, 0 rows affected (0.00 sec)
mysql>
show slave status \G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
12. 進行測試:在 master 上建立一個數據庫,並添加一張表,再登陸到 slave
上能夠看到數據都同步過去了。
所遇問題:進行到 11 步時發現 Slave_IO_Running 後面是 No,試了好多方法都
不行,後來乾脆從 master 機器上拷貝一份 my.cnf 配置文件,修改一下,從新啓
動服務,再作一遍便可。