yum -y install mysql-server
chkconfig mysqld on
service mysqld start
mysqladmin -uroot password’1q2w3e’修改root密碼。
nod2上同樣方式安裝mysql,并做如上操作。
2.nod1上mysql的設(shè)置。
在這里我就用test數(shù)據(jù)庫來做測試,在test數(shù)據(jù)庫里新建一個data表,并添加一些數(shù)據(jù),具體操作如下:
#mysql -uroot -p1q2w3e
mysql> create table data(name VARCHAR(20), address VARCHAR(50), phone VARCHAR(20));
mysql>insert into data(name,address,phone) values(‘johnson’,’shanghai’,'135000000′);mysql>select * from data;
+———+———-+———–+
| name | address | phone |
+———+———-+———–+
| johnson | shanghai | 135000000 |
+———+———-+———–+
1 row in set (0.01 sec)
設(shè)置數(shù)據(jù)庫同步帳戶:
mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO ‘backup’@'192.168.254.2′ IDENTIFIED BY ‘qawsed’;
(授與從192.168.254.2主機上登錄用戶backup數(shù)據(jù)復(fù)制權(quán)限,4.02版本以前用:GRANT FILE ON *.* TO backup@192.168.254.2 IDENTIFIED BY ‘qawsed’;)
mysql>flush privileges;
mysql> select user,host from user;
+——–+——————+
| user | host |
+——–+——————+
| root | 127.0.0.1 |
| backup | 192.168.254.2 |
| | localhost |
| root | localhost |
| | nod1.test.domain |
| root | nod1.test.domain |
+——–+——————+
6 rows in set (0.01 sec)
修改配置文件:
停止mysql服務(wù)
service mysqld stop
在[mysqld]中加入以下內(nèi)容
server-id=1 #設(shè)置服務(wù)器的ID號
log-bin #設(shè)置同步log
binlog-do-db=test #設(shè)置同步數(shù)據(jù)庫
max_binlog_size=104857600
replicate-same-server-id
master-host=192.168.254.2 #主機IP
master-user=backup
master-password=qawsed
master-port=3306
master-connect-retry=60 #斷點重試間隔為60秒
replicate-do-db=test #表示同步test數(shù)據(jù)庫
binlog-ignore-db=mysql #不同步的數(shù)據(jù)庫
# service mysqld start //先啟動mysql
# mysqldump -h localhost -u root -p1q2w3e test >test.sql
#scp test.sql root@192.168.2542:/ //(將test.sql復(fù)制到mysqlB的/目錄下)
至此nod1服務(wù)器上有關(guān)mysql的設(shè)置已完成,下一步開始配置nod2
設(shè)置nod2
設(shè)置數(shù)據(jù)庫同步帳戶:
mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO ‘backup’@'192.168.254.1′ IDENTIFIED BY ‘qawsed’;
(授與從192.168.254.1主機上登錄用戶backup數(shù)據(jù)復(fù)制權(quán)限,4.02版本以前用:GRANT FILE ON *.* TO backup@192.168.254.1 IDENTIFIED BY ‘qawsed’;)
mysql>flush privileges;
修改配置文件:
停止mysql服務(wù)
#service mysqld stop
更改Mysql配置文件/etc/my.cnf
# vi /etc/my.cnf
server-id=2 #設(shè)置服務(wù)器的ID號
log-bin #設(shè)置同步log
binlog-do-db=test #設(shè)置同步數(shù)據(jù)庫
max_binlog_size=104857600
replicate-same-server-id
master-host=192.168.254.1 #主機IP
master-user=backup
master-password=qawsed
master-port=3306
master-connect-retry=60 #斷點重試間隔為60秒
replicate-do-db=test #表示同步test數(shù)據(jù)庫
binlog-ignore-db=mysql #不同步的數(shù)據(jù)庫
還原從mysqlA備份過的test.sql
#service mysqld start
# mysql -u root -p1q2w3e test
重啟兩邊的mysql服務(wù)
查詢配置
Show Slave status:此處Slave_IO_Running ,Slave_SQL_Running 都應(yīng)該是yes,表示從庫的I/O,Slave_SQL線程都正確開啟.
在Mysql中可通過以下命令來查看主從狀態(tài)
show master status 查看master狀態(tài)
show slave status 查看slave狀態(tài)
show processlist G 查看當前進程
stop slave 暫時停止slave進程
start slave 開始slave進程
在primary服務(wù)器上 MySQL命令符下輸入:
mysql>show master status;
+——————-+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————-+———-+————–+——————+
| mysqld-bin.000001 | 196 | test | mysql |
+——————-+———-+————–+——————+
1 row in set (0.00 sec)
mysql>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.254.1
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 235
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 235
Relay_Log_Space: 236
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.01 sec)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
表示正常!
到此mysql的雙機互備已基本完成,在兩臺服務(wù)器的mysql數(shù)據(jù)庫中任意添加數(shù)據(jù),都可以同步到對端服務(wù)器上