MySQL主从复制-双主结构
1:安裝命令 2臺(tái)機(jī)分別安裝
yum –y install mysql-server
2:配置登陸用戶的密碼root?
/usr/bin/mysqladmin -u root password 'root'
3:配置允許第三方機(jī)器訪問(wèn)本機(jī)Mysql,分別在2個(gè)機(jī)子上配置user表
3.1遠(yuǎn)程的的數(shù)據(jù)庫(kù) user表 ,其中host :% 代表所有的ip都可以連接,如果需要指定的ip連接,host:指定的ip
| host | user | password ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+------+------+-------------------------------------------+
| % ? ?| root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+------+------+-------------------------------------------+
3.2表結(jié)構(gòu)改成這樣后:需要刷新權(quán)限
mysql> flush privileges;
3.3 遠(yuǎn)程的機(jī)器連接測(cè)試
[root@fei ~]# mysql -u root -p -h 連接的MySQL服務(wù)器所在的電腦IP
[root@fei ~]# mysql -u root -p -h 192.168.24.25
4.配置主從機(jī)器分別配置
1)?vim /etc/my.cnf
添加
[mysqld]
server-id=1 ?//不同的mysql服務(wù)器id要不同,比如我另一臺(tái)mysql服務(wù)器server-id=2
log-bin=mysql-bin
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2)分別重新啟動(dòng)主從二臺(tái)mysql服務(wù)
service mysqld restart3)查看MySQL有沒(méi)有變化
mysql> show VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id ? ? | 1 ? ? |
+---------------+-------+
1 row in set (0.00 sec)
4)獲取文件名File?192.168.163.130服務(wù)器
mysql> show master status;
+------------------+----------+--------------+------------------+
| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | ? ? ?106 | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
文件名為mysql-bin.000002,106代表日志從106行以后開(kāi)始
5)?配置從服務(wù)器(可以實(shí)現(xiàn)主服務(wù)更新數(shù)據(jù),從服務(wù)器也更新)
change master to
master_host='192.168.163.130',//mysql主服務(wù)器地址
master_user='root',
master_password='root',
master_log_file='mysql-bin.000002',
master_log_pos=106;
執(zhí)行
在192.168.163.131從服務(wù)器執(zhí)行
mysql> ?change master to
? ? -> master_host='192.168.163.130',
? ? -> master_user='root',
? ? -> master_password='root',
? ? -> master_log_file='mysql-bin.000002',
? ? -> master_log_pos=106;
Query OK, 0 rows affected (0.04 sec)
開(kāi)啟從服務(wù)器:mysql> start slave;
查詢從服務(wù)器狀態(tài):mysql> show slave status \G;
*************************** 1. row ***************************
? ? ? ? ? ? ? ?Slave_IO_State: Waiting for master to send event
? ? ? ? ? ? ? ? ? Master_Host: 192.168.163.130 ? //主服務(wù)器地址
? ? ? ? ? ? ? ? ? Master_User: root
? ? ? ? ? ? ? ? ? Master_Port: 3306
? ? ? ? ? ? ? ? Connect_Retry: 60
? ? ? ? ? ? ? Master_Log_File: mysql-bin.000002
? ? ? ? ? Read_Master_Log_Pos: 106
? ? ? ? ? ? ? ?Relay_Log_File: mysqld-relay-bin.000002
? ? ? ? ? ? ? ? Relay_Log_Pos: 251
? ? ? ? Relay_Master_Log_File: mysql-bin.000002
? ? ? ? ? ? ?Slave_IO_Running: Yes ?// 表示去訪問(wèn)主服務(wù)器,yes表示通了
? ? ? ? ? ? Slave_SQL_Running: Yes //發(fā)送一個(gè)sql語(yǔ)句給主服務(wù)器,yes表示通了
? ? ? ? ? ? ? Replicate_Do_DB:?
? ? ? ? ? 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: 106
? ? ? ? ? ? ? Relay_Log_Space: 407
? ? ? ? ? ? ? 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
Master_SSL_Verify_Server_Cert: No
? ? ? ? ? ? ? ? Last_IO_Errno: 0
? ? ? ? ? ? ? ? Last_IO_Error:?
? ? ? ? ? ? ? ?Last_SQL_Errno: 0
? ? ? ? ? ? ? ?Last_SQL_Error:?
1 row in set (0.00 sec)
6)主服務(wù)器測(cè)試,添加表數(shù)據(jù),看下從庫(kù)是是否更新表
添加表數(shù)據(jù)前:
mysql> show databases;
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ? ?|
| test ? ? ? ? ? ? ? |
執(zhí)行:
mysql> create database test1;
mysql> use test1;
mysql> create table user(id int(2),name char(20));
添加表數(shù)據(jù)后:
mysql> select * from user;
+------+------+
| id ? | name |
+------+------+
| ? ?1 | xia ?|
+------+------+
1 row in set (0.00 sec)
7)從服務(wù)測(cè)試
mysql> show databases;
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ? ?|
| test ? ? ? ? ? ? ? |
| test1 ? ? ? ? ? ? ?|
+--------------------+
4 rows in set (0.00 sec)
mysql> use test1;
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| user ? ? ? ? ? ?|
+-----------------+
1 row in set (0.00 sec)
8)雙主結(jié)構(gòu)(剛剛的配置是在從服務(wù)器上配置,可以實(shí)現(xiàn)主服務(wù)更新數(shù)據(jù),從服務(wù)器也更新,現(xiàn)在反過(guò)來(lái),在主服務(wù)配置,實(shí)現(xiàn)從服務(wù)器更新,主服務(wù)器也更新)
配置從服務(wù)器,
change master to
master_host='192.168.163.131',//mysql主服務(wù)器地址
master_user='root',
master_password='root',
master_log_file='mysql-bin.000002',
master_log_pos=106;
執(zhí)行
在192.168.163.130主服務(wù)器執(zhí)行
mysql> change master to
? ? -> master_host='192.168.163.131',
? ? -> master_user='root',
? ? -> master_password='root',
? ? -> master_log_file='mysql-bin.000002',
? ? -> master_log_pos=106;
Query OK, 0 rows affected (0.02 sec)
開(kāi)啟從服務(wù)器:mysql> start slave;
查詢從服務(wù)器狀態(tài):mysql> show slave status \G;
? ? ? ? ? ? ? ?Slave_IO_State: Waiting for master to send event? ? ? ? ? ? ? ? ? Master_Host: 192.168.163.131
? ? ? ? ? ? ? ? ? Master_User: root
? ? ? ? ? ? ? ? ? Master_Port: 3306
? ? ? ? ? ? ? ? Connect_Retry: 60
? ? ? ? ? ? ? Master_Log_File: mysql-bin.000002
? ? ? ? ? Read_Master_Log_Pos: 106
? ? ? ? ? ? ? ?Relay_Log_File: mysqld-relay-bin.000002
? ? ? ? ? ? ? ? Relay_Log_Pos: 251
? ? ? ? Relay_Master_Log_File: mysql-bin.000002
? ? ? ? ? ? ?Slave_IO_Running: Yes
? ? ? ? ? ? Slave_SQL_Running: Yes
轉(zhuǎn)載于:https://www.cnblogs.com/feiZhou/p/9344519.html
總結(jié)
以上是生活随笔為你收集整理的MySQL主从复制-双主结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DFiddler:A HTTP Pack
- 下一篇: Vue 过渡实现轮播图