mysql 主次数据库搭建
准备工作:主192.168。200.51 从192.168。200.53
主从服务器需要有相同的初态
1、将主服务器要同步的数据库枷锁,避免同步时数据发生改变
mysql>use db; mysql>flush tables with read lock;
2、将主服务器数据库中数据导出
mysqldump -uroot -pxxxx db > db.sql;
3 将初始数据导入从服务器数据库
mysql>create database db; mysql>use db; mysql>source db.sql;
4 数据同步好后,解锁主服务器数据库
mysql>unlock tables;
5 在主库上,设置一个复制使用的账户
mysql>grant replication slave on *.* to 'slave_user'@'192.168.200.53' identified by 'salvepassword';
mysql>flush privileges;
主服务器配置
1、修改MySQL配置
vim /etc/my.cnf
1 在[mysqld]中添加
#主数据库端ID号 server_id = 1 #开启二进制日志 log-bin =/data/mysql/master01-bin.log
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
binlog_cache_size=32M
#二进制日志自动删除的天数,默认值为0,表示“没有自动删除”,启动时和二进制日志循环时可能删除
expire_logs_days = 7
slave_skip_errors=1062
3 查看主服务器状态
show master status;
File='master01-bin.000002', Position=154 是是从库执行同步命令需要用,这边要记录起来
执行完这个步骤后不要再操作主服务器数据库了,防止其状态值发生变化
从服务器配置
1、修改MySQL配置
vim /etc/my.cnf
2 在[mysqld]中添加
server_id = 2 log-bin =/data/mysql/slave02-bin.log
relay-log=slave02-relay-bin.log
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
binlog_cache_size=32M
expire_logs_days=31
slave_skip_errors=1062
read_only=1
3、执行同步命令并且开启同步
change master to master_host='192.168.200.51', master_port=3306, master_user='slave_user' ,master_password='slave@.com', master_log_file='master01-bin.000002', master_log_pos=154;
start slave;
注意:master_log_file='master01-bin.000004', master_log_pos=563;是 show master status;的执行结果,需要记录起来这边用。
4 查看从服务器状态
show slave status;
若失败查看mysql错误日志中具体报错详情来进行问题定位
最后可以去主服务器上的数据库中创建表或者更新表数据来测试同步