mysql 复制同步_mysql主从复制同步

主master : 192.168.8.10

开启二进制日志

配置唯一的server-id

获得master二进制日志文件名及位置

创建一个用于slave和master通信的用户账号

从slave : 192.168.8.11

配置唯一的server-id

使用master分配的用户账号读取master二进制日志

启用slave服务

1、配置主库:

1)、授权给从数据库服务器

mysql>GRANT REPLICATION SLAVE ON *.* to 'slave'@'192.168.8.11' identified by 'b5HMLIWQSdT630Dp';

mysql>FLUSH PRIVILEGES;

## 查看MySQL现在有哪些用户及对应的IP权限

mysql> select user,host from mysql.user;

2)、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效

在该配置文件[mysqld]下面添加下面内容:

[mysqld]

log-bin=/var/lib/mysql/binlog

server-id=1

binlog-do-db = cmdb

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

server-id:master端的ID号;

log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的(我这里是偷懒了,直接放在了下面那个datadir下面);

binlog-do-db:要同步的数据库名

还可以显示 设置不同步的数据库:

binlog-ignore-db = mysql 不同步mysql库和test库

binlog-ignore-db = test

3)、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

mysql> show master status;

+-------------------+-----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+-------------------+-----------+--------------+------------------+-------------------+

| mysqld-bin.000121 | 514780853 | | | |

+-------------------+-----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

2、配置从库

1)、理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:

[mysqld]

server-id=2  //必须是唯一的

重启时报错:mysqld: unknown variable ‘master-host=

说明mysql不认识这些变量,网上搜罗了一番,原因是mysql5.5+版本主从复制不支持这些变量,需要在从库上用命令来设置:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',

MASTER_PORT=3306,

MASTER_USER='slave',

MASTER_PASSWORD='b5HMLIWQSdT630Dp',

MASTER_LOG_FILE='mysql-bin.000071',

MASTER_LOG_POS=120; #后面两个参数的值与主库保持一致

MASTER_CONNECT_RETRY=10;

mysql> CHANGE MASTER TO MASTER_HOST='111.230.144.106',

-> MASTER_PORT=3306,

-> MASTER_USER='slave2',

-> MASTER_PASSWORD='b5HMLIWQSdT630Dp',

-> MASTER_LOG_FILE='mysqld-bin.000121',

-> MASTER_LOG_POS=514780853,

-> MASTER_CONNECT_RETRY=10;

2)、启动slave进程

mysql> start slave;

错误error 1872

执行重置

reset slave;

Query OK, 0 rows affected (0.04 sec)

3)、查看slave的状态,

show slave status;

如果下面两项值为YES,则表示配置正确:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

从库正在等待主库更新数据。。。Waitin for master to send event...

三、同步主库已有数据到从库

主库操作:

1、停止主库的数据更新操作

mysql>flush tables with read lock;

2、新开终端,生成主数据库的备份(导出数据库)

[root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql

3、将备份文件传到从库

[root@zhoujietest ~]# scp cmdb.sql root@192.168.8.11:/root/

4、主库解锁

mysql>unlock tables;

然后在主服务器上查询当前二进制文件的文件名及偏移位置:

mysql > show master status;

然后停止主服务器上的MySQL服务:

shell> mysqladmin -u root shutdown

从库操作:

1、停止从库slave

mysql>slave stop;

2、新建数据库cmdb

mysql> create database cmdb default charset utf8;

3、导入数据

[root@ops-dev ~]# mysql -uroot -ptest123 cmdb

4、查看从库已有该数据库和数据

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| cmdb |

| mysql |

| performance_schema |

| test |

+--------------------+

此时主从库的数据完全一致,如果对主库进行增删改操作,从库会自动同步进行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值