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;

 

Slave_IO_Running及Slave_SQL_Running进程必须正常运行,即Yes状态,否则说明同步失败
若失败查看mysql错误日志中具体报错详情来进行问题定位
或者使用show slave status;

 

最后可以去主服务器上的数据库中创建表或者更新表数据来测试同步

 

posted @ 2023-02-01 13:37  誓鼎  阅读(43)  评论(0编辑  收藏  举报