mysql日志主丛

Linux命令.chm主服务器 10.10.1.100
从服务器 10.10.1.101
1、主从设置工作准备
100服务器

添加账户用于从服务器同步

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'10.10.1.101' IDENTIFIED BY 'oppein123!';

锁定表只读
set GLOBAL read_only = false
主库导出库
mysqldump -uroot -p oppeincn>oppeincn.sql
mysqldump -uroot -p salespromotion>salespromotion.sql

101服务器

创建oppeincn,salespromotion数据库
把库导入从服务器数据库
mysql -uroot -p oppeincn
mysql -uroot -p salespromotion

 
====================================================================================================================================================================
 
关于备份
如果数据量很大的话,mysqldump会非常慢,此时直接拷贝数据文件能节省不少时间: 
 
在拷贝之前要先锁定数据,然后再获得相关的日志信息(FILE & POSITION):   
 
mysql> FLUSH TABLES WITH READ LOCK;   
  mysql> SHOW MASTER STATUS;  
接下来拷贝数据文件时,如果是MyISAM表类型的话,直接拷贝即可;如果是InnoDB表类型的话,一定要先停止MySQL服务再拷贝,否则拷贝文件可能无法使用。把拷贝的数据文件直接复制到从服务器的数据目录。
 
====================================================================================================================================================================

2、 打开100服务器的my.cnf,输入

server-id               = 1    
log_bin                 = /var/log/mysql/mysql-bin.log 
binlog-do-db         =oppeincn    #同步多个的时候可以写多行
binlog-do-db         =salespromotion
binlog-ignore-db   =mysql

3、打开 101服务器 的my.cnf,输入

server-id           = 2
replicate-do-db =oppeincn      #同步多个的时候可以写多行
replicate-do-db =salespromotion
replicate-ignore-db=mysql

先重启100服务器的mysql,再重启101服务器的mysql

systemctl restart mariadb.service 
或者
service mariadb restart
4、
查看100主服务器状态
show master status\G
101服务器 执行配置主从的sql  
mysql日志主丛_第1张图片
master_log_file,master_log_pos内容填写上面红圈内容
change master to master_host='10.10.1.100', master_user='backup', master_password='oppein123!',master_log_file='mysql-bin.000010',master_log_pos=73135900;

查看从服务器状态
show slave status\G
mysql日志主丛_第2张图片

若两个都是YES就成功了
锁定 101服务器 的表只读
set GLOBAL read_only = false

=======================================================================

常见错误
Slave_SQL_Running: No

原因:
1.程序可能在slave上进行了写操作 
2.也可能是slave机器重起后,事务回滚造成的.

解决办法一:
1.首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值。
3.到slave服务器上执行手动同步:

change master to master_host='10.10.1.100', master_user='backup', master_password='oppein123!',master_log_file='mysql-bin.000010',master_log_pos=73135900;

解决办法二:
slave stop;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;  #跳过错误操作
slave start;

 
主从服务器常用命令
 

 
关闭 从服务器 slave stop
 

 
开启 从服务器 slave start
 

 
关闭 主服务器 master stop
 

 
开启 主服务器 master start

你可能感兴趣的:(mysql)