MySQL主从复制(主:linux Redhat MySQL 5.1;从:win10,MySQL5.5)
主MySQL设置
在linux中的 /etc/my.cnf (mysql的配置文件路径)
执行 vi my.cnf 进行编辑
在文件的 [mysqld] 下 添加设置,保存
log-bin = log
server-id = 1
binlog-do-db = lele
从MySQL设置
在 mysql 的 my.ini 中的 [mysqld] 中添加设置,保存
log-bin=log (与主服务的一致)
server-id = 2
replicate-do-db=test
分别启动主从服务的mysql
主:mysql中执行
在 mysql.user表中创建 temp_test用户:
create user ‘temp_test’@’%’ identified by ‘123456’; #可以任意ip连接
给temp_test用户配置主从复制的权限:
grant replication slave on . to ‘temp_test’@’%’ identified by ‘123456’;
刷新权限:
flush privileges;
查看主服务状态:
show master status;
这个Position和File一会在从服务器中需要配置
change master to master_host=‘服务器地址’,master_user=‘temp_test’,master_password=‘123456’,master_log_file=‘log.000004’,master_log_pos=106;
然后再从mysql脚本中输入
start slave ;
查看是否连接成功
show slave status\G #注意加不加分号,其实并不影响
都为Yes,才表示连接成功。
注意事项
1.主从数据库不一定版本相同,尽量版本相同
2.状态为Slave_IO_Running:connecting,其他博友其实都有过说明,三种情况
1)、网络不通
2)、密码不对
3)、pos不对
注意网络不通,还有需要会查看mysql的错误日志,网络的话,再最开始设置的网络其实并没有连接到真正的mysql,因为并没有配置真正的IP地址,所以需要用ipconfig查看ip地址(从服务器一会就需要连接这ip),或者去配置一个永久ip。
花费了整整一天时间,看了好多博客,才发现自己ip弄错了,总结部分内容,如有错误,还希望大家一起交流,接下来会继续读写分离。