//dump出整个数据库包含函数定义 可用于master slave
mysqldump --master-data=2 -R test > dumpfile_with-R
mysql master 192.168.1.101
mysql slave 192.168.1.102
首先保证互相能访问登录
在mysql>里输入
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
% 表示所有IP地址 或者你可以指定一个
或
grant replication slave on *.* to "loki"@"192.168.2.24" identified by "506506"; 只给复制权限
记得 mysql> flush privileges;
但我这样做了还是访问不了
后来知道是mysql.user表里有其他账号干扰
use mysql;
select user,host from user;
看下是否有user=''的用户 存在,有就删掉,我就被这个折磨了半天
然后就应该可以互访问了。
然后 在slave上
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.101', MASTER_PASSWORD='1111', MASTER_LOG_FILE='mysql-bin.001', MASTER_LOG_POS=001;
mysql>start slave;
接着要检查一下是否成功
mysql>show slave status\G;
这是有可能报错:
server id重复 这个要去改my.cnf 里面有一行是serverid 确保主从的ID不一样
这里要注意:
不过稍后蚊子 使用/etc/init.d/mysqld restart重启了mysql服务,然后查看slave状态,发现又出现了上面的错误,然后查看server_id发现这个数值又恢复到了1。
之后蚊子 又重新查看了一下/etc/my.cnf的内容,确认应该不是这个文 件的问题,于是去google查了一下,看到mysql在启动的时候会查找/etc/my.cnf、DATADIR/my.cnf,USER_HOME /my.cnf。
然后再次mysql>show slave status\G;
这次告诉我有重复的内容duplicate entry
这是你可以在slave 的my.cnf 中
这时会忽略所有错误
mysql> show variables like "%slave%"; 看下是否改动成功
若只要排除 Duplicate entry (Last_Errno: 1062), 可以單獨指定 Error No, 多個寫法如下:
slave-skip-errors=1062,1053
查看主从服务器的状态:
MySQL> SHOW PROCESSLIST\G