主数据库IP:192.168.3.169
从数据库IP:192.168.3.34
主数据库配置my.inin:
在[mysqld]下添加配置数据:
server-id=1
log-bin=mysql-bin
#设置要进行或不要进行主从复制的数据库名,同时也要在Slave 上设定。
binlog-do-db=数据库名1
binlog-do-db=数据库名2
binlog-ignore-db=数据库名1
binlog-ignore-db=数据库名2
保存,重启数据库服务。
在cmd下登录数据库:
mysql mysql -u[用户名]-p[密码]
在主数据库中建立一个备份账户:
mysql>grant replication slave,reload,super on *.* toslave@192.168.3.34identified by 'slave' ;
mysql>flush privileges;
mysql>show masterstatus;
从数据库配置my.ini:
[mysqld]
server-id=2
#设置要进行或不要进行主从复制的数据库名,同时也要在Master 上设定。
replicate-do-db=数据库名1
replicate-do-db=数据库名2
replicate-ignore-db=数据库名1
replicate-ignore-db=数据库名2
保存,重启数据库服务。在mysql5.1以上版本中是不支持1中master设置的,如果添加了master设置,数据库就无法重启了;
在cmd下登录数据库:
mysql mysql -u[用户名] -p[密码]
mysql>change master tomaster_host='192.168.3.169',master_user='slave',master_password='slave',master_log_file='mysql-bin.000001',master_log_pos=107;
mysql> start slave;
mysql> show slave status\G
如果出现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两项都为Yes,那说明没问题了。如果指定了个别的数据库,还可以看到
注:如果出现Slave_SQL_Running:connecting的现象,首先在从库命令行下输入:
#mysql -uslave
看是否能登入mysql,如果是拒绝等提示,那要查看主机上的第从库授权操作是否用户的权限等设置正确
配置成功后,修改主数据库信息,从数据库会自动更新。