好像好久没写博客 ,今天闲来无事,自己动手配置了一下mysql主从复制 ,顺便记一下,方便以后的使用。
1.主服务器配置
第一步:
首先需要配置mysql主从服务器可以连通,
grant all on *.* to user@192.168.241.130 identified by "456";
第二步:
编辑 /etc文件夹下的my.conf
server-id=107
log-bin=/var/lib/mysql/mysql-bin
第三步:
重启mysql服务器 service mysql restart
第四步:
设置读锁
flush tables with read lock;
第五步:
记下偏移量与binlog日志文件名
show master status;
第六步:
备份数据库
mysqldump -uroot -p123 test >/use/local/test.sql
第七步:
解锁
unlock tables;
2.从服务器配置
第一步:
此处要注意logfile的名称和position的值,其余host、user和password为主数据库设置的账号和密码
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> change master to
-> master_host='192.168.0.107',
-> master_user='repl',
-> master_password='repl',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=713;
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.107
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 1079
Relay_Log_File: mysqld-relay-bin.000004
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: 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: 1079
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)
ERROR:
No query specified
在这里主要是看:
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
如果出现Slave_IO_Running: No或Slave_SQL_Running: NO,需要重做2.3、对从数据库进行相应设置
3.测试
3.1、在主数据库:192.168.0.107上添加新数据
insert into `menber` (`name`) values('李八');insert into `menber` (`name`) values('苍井空');
3.2从数据库:192.168.0.109上查看数据库
mysql> select * from menber; +-----------+----+ | name | id | +-----------+----+ | zhangsan | 1 | | lisi | 2 | | 王五 | 3 | | 李八 | 4 | | 苍井空 | 5 | +-----------+----+ 5 rows in set (0.02 sec)
此时数据已经成功复制到slave从数据库192.168.0.109上。