实现MySQL主从复制需要进行的配置:
- 主服务器:
- 开启二进制日志
- 配置唯一的server-id
- 获得master二进制日志文件名及位置
- 创建一个用于slave和master通信的用户账号
- 从服务器:
- 配置唯一的server-id
- 使用master分配的用户账号读取master二进制日志
- 启用slave服务
一、准备工作:
1.主从数据库版本最好一致
2.主从数据库内数据保持一致
主数据库:192.168.1.244
从数据库:192.168.1.109
二、主数据库master修改:
1.修改mysql配置
找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:
[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
# 只同步哪些数据库,除此之外,其他不同步 binlog-do-db = htjy
# 不同步哪些数据库 (可以不用)binlog-ignore-db = mysql binlog-ignore-db = test binlog-ignore-db = information_schema
2.重启mysql,创建用于同步的用户账号
[root@localhost ~]# mysql -u root -p
创建用户并授权,账号:slave 密码:123456
mysql> CREATE USER 'slave'@'192.168.1.244' IDENTIFIED BY '123456'; #创建用户
#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.244'; #分配权限
#分配权限
mysql> flush privileges; #刷新权限
3.查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):
二、从服务器slave修改:
1.修改mysql配置
同样找到my.cnf配文置件,添加server-id
[mysqld]server-id=2 #设置server-id,必须唯一
2.重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置):
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.244', MASTER_USER='slave', MASTER_PASSWORD='Ab123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=73;
3.启动slave同步进程:
mysql> start slave;
4.查看slave状态:
mysql> show slave status\G;