mysql主从复制

来源:互联网 发布:淘宝差评如何巧妙回复 编辑:程序博客网 时间:2024/05/29 12:30

好像好久没写博客 ,今天闲来无事,自己动手配置了一下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上。