公共配置:
运行数据库服务
从数据库服务器上一定有主数据库服务器上的库,表且表结构要一致。
关闭iptables 禁用selinux
配置一个主机做主数据服务器:vim /etc/my.cnf
1 主必须启用binlog日志; log-bin
2 指定自己的server-id; server-id=5
3 授权连接用户,可以从主来连接自己,连接自己后有拷贝数据的权限; mysal > grant replication slave on *.* to liang@"192.168.2.200" identified by "123456";
mysql> show master status; #查看主数据库服务器当前正在使用的binlog日志名
配置从做从服务器:
1 测试授权用户是否有效;
mysql -h192.168.2.200 -uliang -p123456
2 配置从的server-id; server-id=205 重启服务(从上面可以不启用binlog日志)
3 在自己本机使用自己的数据库管理员登陆,设置自己做192.168.2.1的从数据库服务器
change master to master_host="192.168.2.1",master_user="liang",master_password="123456", master_log_file="x-bin.000001",master_log_pos=329;
(ip填主的IP master_log_file和master_log_pos 通过在主的mysql上show master status\G;获取)
4 mysql> start slave;
mysql> show slave status 在从上查看自己当前的状态 显示Empty set(0.07 sec)
Slave_IO_Running:Yes (IO进程)
Slave_SQL_Running:Yes (SQL进程) 两个配置显示yes配置成功
IO进程负责拷贝主数据库服务器binlog日志里的sql语句到本机的中继binlog日志里
SQL进程 负责执行本机中继binlog日志里的sql语句把数据写进数据库
IO进程什么时候会出错?连接不上主数据库服务器时会出错:1 ping不通(线路,安全),2 授权问题(用户名,密码)3 指定的binlog日志名和o=pos节点的位置和当前主数据服务器上的信息不一致
SQL进程什么时候出错?主从库表不一致(sql语句操作的库,表,字段在自己本机不存在);
ls /var/lib/mysql(不想做从时stop slave把以下四个文件删除即可)
x-relay-bin.00000x 中继binlog日志
x-relay-bin.index 记录已有的中继binlog日志
relay-log.info 记录中继日志信息
master.info 记录主数据库服务器的信息
查show slave status;里面的报错信息
Last_IO_Errno: #IO报错信息个数,Last_IO_Error: #IO报错具体内容
Last_SQL_Errno: ##SQL报错信息个数
Last_SQL_Error: #SQL报错具体内容
另外查次cat /var/lib/mysql/auto.cnf 的UUID和主必须不同
如果是no:
mysql> stop slave; #关闭主从同步
mysql> change master to 选项=值,选项=值 #修改错误值
mysql> start slave;
本文出自 “linux云计算” 博客,转载请与作者联系!