主从同步相关问题解答(后期持续补充)
1. 主库进行show master status的时候没有结果.这表示binlog功能开关没有打开,主库的二进制文件并没有生成.或者用show variables like ‘log_bin’查看其开光是不是打开了.
方法:打开my.cnf文件,手动修改.打开log-bin,log-bin=mysql-bin(也可以指定到相应的目录下).再次执行show master status就可以看到相应的结果了.
注意:配置文件里的参数合show variables里的参数不一样.比如:my.cnf里的log-bin,show的时候则是log_bin.
解决方法:这个原因是change master 的时候多了空格.
3.开启了同步,但是 Slave_IO_Running: Connecting而不是yes
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Connecting to master
Master_Host: 192.168.52.222
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Connecting
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
解决方法:这两个日志没有打开relay_log = mysql-relay-bin,log_slave_updates = 1或者授权slave的用户的时候只授权了replication slave,而要一起授权reload和super.
SUPER权限能用来终止其它用户或更改服务器的操作方式。 授给mysql数据库本身的权限能用来改变密码和其他访问权限信息。reload命令告诉服务器将授权表重新读入内存。flush-privileges是reload的同义词.