mysql主从同步

公共配置:

运行数据库服务

从数据库服务器上一定有主数据库服务器上的库,表且表结构要一致。

关闭iptables  禁用selinux 

配置一个主机做主数据服务器:vim /etc/my.cnf

1 主必须启用binlog日志;  log-bin

2 指定自己的server-id;    server-id=5

3 授权连接用户,可以从主来连接自己,连接自己后有拷贝数据的权限; mysal > grant replication slave on *.* to liang@"192.168.2.200" identified  by "123456";

mysql> show master status;  #查看主数据库服务器当前正在使用的binlog日志名

配置从做从服务器:

1 测试授权用户是否有效;

mysql -h192.168.2.200 -uliang -p123456

2 配置从的server-id;   server-id=205  重启服务(从上面可以不启用binlog日志)

3 在自己本机使用自己的数据库管理员登陆,设置自己做192.168.2.1的从数据库服务器

change master to master_host="192.168.2.1",master_user="liang",master_password="123456", master_log_file="x-bin.000001",master_log_pos=329;

(ip填主的IP master_log_file和master_log_pos 通过在主的mysql上show master status\G;获取)

4  mysql> start slave;

mysql> show slave status   在从上查看自己当前的状态 显示Empty set(0.07 sec)

  Slave_IO_Running:Yes      (IO进程)

  Slave_SQL_Running:Yes    (SQL进程)    两个配置显示yes配置成功

IO进程负责拷贝主数据库服务器binlog日志里的sql语句到本机的中继binlog日志里
SQL进程 负责执行本机中继binlog日志里的sql语句把数据写进数据库

IO进程什么时候会出错?连接不上主数据库服务器时会出错:1 ping不通(线路,安全),2 授权问题(用户名,密码)3 指定的binlog日志名和o=pos节点的位置和当前主数据服务器上的信息不一致

SQL进程什么时候出错?主从库表不一致(sql语句操作的库,表,字段在自己本机不存在);

ls /var/lib/mysql(不想做从时stop slave把以下四个文件删除即可)

x-relay-bin.00000x   中继binlog日志

x-relay-bin.index    记录已有的中继binlog日志

relay-log.info   记录中继日志信息

master.info   记录主数据库服务器的信息

 查show slave status;里面的报错信息

 Last_IO_Errno:      #IO报错信息个数,Last_IO_Error:     #IO报错具体内容
Last_SQL_Errno:    ##SQL报错信息个数
Last_SQL_Error:    #SQL报错具体内容

另外查次cat /var/lib/mysql/auto.cnf 的UUID和主必须不同

如果是no:

mysql> stop slave;     #关闭主从同步

mysql> change master to 选项=值,选项=值          #修改错误值

mysql> start slave; 

本文出自 “linux云计算” 博客,转载请与作者联系!

你可能感兴趣的:(mysql,主从同步)