主数据库IP:192.168.3.169
从数据库IP:192.168.3.34
主数据库配置my.inin:
在[mysqld]下添加配置数据:
server-id=1 #配一个唯一的ID编号,1至32。
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 -uroot -proot
在主数据库中建立一个备份账户:
mysql>grant replication slave,reload,super on *.* to slave@192.168.3.34 identified by 'slave' ;
mysql>flush privileges;
mysql>show master status; # 找到File 和 Position 的值记录下来;
从数据库配置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 to master_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 statusG
如果出现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两项都为Yes,那说明没问题了。如果指定了个别的数据库,还可以看到
注:如果出现Slave_SQL_Running:connecting的现象,首先在从库命令行下输入:
#mysql -uslave -pslave
看是否能登入mysql,如果是拒绝等提示,那要查看主机上的第从库授权操作是否用户的权限等设置正确
配置成功后,修改主数据库信息,从数据库会自动更新。