mysql主从同步

1、主库设置

打开my.cnf配置文件

vi /etc/mysql/my.cnf

#键入 /server-id 找到server-id的位置,把以下内容对照设置进去,键入 i,激活输入状态(在[mysqlId]下)
#注意,这里的Master与Slave的server-id不能相同

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100
binlog_do_db = mzm_product #如果需要同时同步多个数据库,请另起一行设置binlog_do_db=需要同步的数据库名称
binlog_do_db = inception_mzm_product
binlog_ignore_db = mysql

cd /var/log/
如果没有mysql目录,新建mysql目录
mkdir mysql
设置权限
chown -R mysql:mysql /var/log/mysql

#授权。允许root用户,从192.168.110.*的IP范围 远程访问A主mysql
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;


如果遇到ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
执行FLUSH PRIVILEGES;
没有问题就直接执行
#生效。该操作很重要!
mysql>FLUSH PRIVILEGES;

3.重启A主mysql数据库
service mysqld restart

2、从库设置

打开my.cnf配置文件

vi /etc/mysql/my.cnf

添加下面内容
[mysqld]
bind-address=0.0.0.0
port=3306
user=root
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
#socket=/var/lib/mysql/mysql.socket
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
max_allowed_packet = 1G
symbolic-links=0
explicit_defaults_for_timestamp=true
log-bin = mysql-bin
server-id =201
skip-grant-tables

3、从库创建数据库目录

在主库执行:

所有库所有表都被锁定只读

mysql> flush tables with read lock;

两种方式:

(1)数据库版本一致情况

--远程拷贝至slave服务器中的数据目录
scp -r /var/lib/mysql/ibdata1 192.168.15.116:/data/mysql/
scp -r /var/lib/mysql/inception_mzm_product 192.168.15.116:/data/mysql
scp -r /var/lib/mysql/mzm_product 192.168.15.116:/data/mysql
chown -R mysql:mysql /data/mysql/

(2)数据库版本不一致

备份数据库文件:

mysqldump -uroot -pmzm@movitech mzm_product > /data/backup/mzm_product.sql

mysqldump -uroot -pmzm@movitech inception_mzm_product > /data/backup/inception_mzm_product.sql

备份出的sql文件传到从库服务器

4、查看主mysql日志状态


show master status;(可以使用数据库客户端工具)

+------------------+----------+-----------------------------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+-----------------------------------+------------------+-------------------+
| mysql-bin.100232 | 3334 | mzm_product,inception_mzm_product | mysql | |
+------------------+----------+-----------------------------------+------------------+-------------------+

mysql> change master to master_host='192.168.16.115', master_user='root', master_password='mzm@movitech',MASTER_LOG_FILE='mysql-bin.100232',MASTER_LOG_POS=3334;

5、在主库执行

mysql> unlock tables;

6、从库执行

use inception_mzm_product;

set names utf8;

source /data/inception_mzm_product.sql;

use mzm_product;

set names utf8;

source /data/mzm_product.sql;

6、开启同步

mysql> start slave;

7、在从库查看同步状态

mysql> show slave status\G;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值