Mysql 数据库复制
数据库复制是一种同步手段,主库向一台或多台数据库同步数据。
这个功能我自己曾经用uts数据传输工具实现过!
现在学习了一下mysql数据库复制的其他方式
第一个就是最简单的使用naivicat的数据库工具,但是需要该主机的naivicat上有两个数据库的连接。
这个工具提供大量的属性以及对应关系,简单易用。
缺点是不能多次使用,下一次使用必需手动!
使用mysql命令行以及my.ini来实现
在配置的过程中我也遇到了很多的问题,这里将它们列举出来,以后有据可查。
主库操作
一
首先为mysql主库添加slave用户
Grant replication slave,replication client on *.* to ‘username’ @’192.168.1.%’ identified by
‘password’,;
二
修改my.ini 添加二进制日志,以及slave进程服务号。
添加log_bin=mysql-bin
Server_id=10 #要求一个服务器id唯一。
Show master status
没有提示为空的话说明服务端配置成功。
为空的话重启mysql服务。一般来说都是my.ini的问题
(mysql slave的配置大多写在my.ini中,跟多的配置选项不再赘述)
三
为从库指定如何连接到主库的二进制日志
Change master to master_host=’’ ,master_user=’username’,master_password=’password’,master_log_file=’mysql-bin.00001’,master_log_pos=0
Change master to 语句执行以后可以通过show slave status\G来查看复制的执行情况
TIPS:\G在cmd的mysql中有转置的作用,在naivicat中并无卵用,\g在cmd中等同于;
Slave_Io_Runing:No
Slave_Io_Runing: No说明没有开始复制。
执行status slave;即可执行复制
Tips:这里的复制是基于日志的也就是说只有二进制日志记录的内容才会被同步。
二进制日志本身也是可以复制的,需要在第一步中添加log_slave_update=1才可以。
我在执行status slave复制时也产生了错误
error1200 :the server is not configured...
我本想重启下mysql服务,结果服务关闭以后出现了1067错误,服务打不开了,这个问题我头疼了一阵,一般可以通过查看regedit配置中的mysql 配置my.ini的目录配置,已经mysql\bin的路径的问题,经检查无误。头疼直接将my.ini删除,重新cp了一个过来结果就行了!!!!!!!!!醉了!!打开mysql服务,slave start启动正常。
结果可以明确了,我没有正确的设定server_id?????明明设置了的