您好,登錄后才能下訂單哦!
Mysql主從實現
1、配置主從節點的服務配置文件
1.1、配置master節點:
[mysqld]
binlog_format=mixed
log-bin=master-bin
server-id=1
port=3306
datadir=/mydata/data
socket=/tmp/mysql.sock
1.2、配置slave節點:
[mysqld]
binlog-format=mixed
log-bin=mysql-bin.log
server-id=2
relay-log=/mydata/relaylogs/relay-bin(需要創建/mydata/relaylogs/后chown -R mysql.mysql /mydata/relaylogs/)
port=3306
datadir=/mydata/data
socket=/tmp/mysql.sock
2、創建復制用戶
主:
mysql> GRANT REPLICATION SLAVE ON *.* TO slave@192.168.4.% IDENTIFIED BY '12345';
mysql> flush privileges;
3、為備節點提供初始數據集
鎖定主表,備份主節點上的數據,將其還原至從節點;在備份時需要在master上使用show master status命令查看二進制日志文件名稱及事件位置,以便后面啟動slave節點時使用。
注:通過全備可以看出mysql-bin的初始位置,
show master status 可以看出目前的空間位置。
通過全備和增量備份即可還原。
4、為了測試效果,先在master機器上創建測試庫
mysql> CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> create table if not exists test (id int(10) PRIMARY KEY AUTO_INCREMENT,name varchar(50) NOT NULL);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test.test values(1,"liudehua"),(2,"zhangxueyou”);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from test.test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | liudehua |
| 2 | zhangxueyou |
+----+-----------+
2 rows in set (0.00 sec)
5、導出master數據庫多于slave數據庫中的數據,然后導入到slave數據庫中。保證雙方在同步環境實現前的數據一致。
導出數據庫之前先鎖定數據庫
mysql> flush tables with read lock;
# mysqldump -uroot -p12345 test > /opt/test.sql
然后將導出的test.sql文件上傳到slave機器上
scp test.sql root@192.168.4.204:/root/
6、啟動從節點的復制線程
記錄mysq-bin文件和位置,從端可以從下面這個點開始同步
7、在slave數據庫中導入從master傳過來的數據。
mysql> CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci; #先創建一個test空庫,否則下面導入數據時會報錯說此庫不存在。字符集需要相同與主庫
mysql> use test;
#mysql -uroot -p test < test.sql
8、準備同步
mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.4.203',
-> MASTER_USER='slave',
-> MASTER_PASSWORD='12345',
-> MASTER_LOG_FILE='master-bin.000004',
-> MASTER_LOG_POS=2327;
mysql> start slave;
mysql> show slave status \G;
9、最后解鎖主庫并寫入數據進行同步驗證:
master:
mysql> unlock tables;
mysql> insert into test.customers values (5,"liming",55),(6,"guofucheng",55);
Query OK, 1 row affected (0.00 sec)
slave:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。