Linux MySQL基于日志主从复制配置

主从复制的过程:mysql

一、master将改变记录到binlogsql

二、slave将master的binlog拷贝到中继日志replay log中数据库

三、slave重作replay log中的操做,将其更新成本身的数据服务器

 

1、master 主库配置ide

一、为其余slave建立一个能够访问master的用户,用户名为repl,密码为123456,受权ip:192.168.1.%日志

mysql> create user repl@'192.168.1.%' identifed by '123456';

二、为新建立的用户repl受权code

mysql> grant replication slave on *.* to repl@'192.168.1.%';

三、修改my.cnf配置orm

[mysqld]
# 最好已master的ip地址尾数
server-id = 100

# 开启binlog
log-bin = mysql-bin

# binlog存放位置(可自定)
log-bin = /usr/local/var/log/mysql/mysql-bin.log

# 忽略Master上的数据库,被忽略的将不会被复制 (可选)
binlog_ignore_db = mysql
binlog_ignore_db = information_schema
binlog_ignore_db = preformance_schema

四、使用mysqldump导出master的数据库,若是主从数据库的版本不一致,就不要备份系统库了。server

user> mysqldump --single-transation --master-data --triggers --routines --all-databases -uroot -p >> all.sql

 

 

2、slave 从库配置ip

一、导入master的数据库备份文件。

user> mysql -uroot -p > all.sql;

二、修改my.cnf配置

[mysqld]
# 最好已master的ip地址尾数
server-id = 101

# 开启binlog
log-bin = mysql-bin

# binlog存放位置(可自定)
log-bin = /usr/local/var/log/mysql/mysql-bin.log

三、在slave上配置master的信息。其中master_log_file[日志文件]和master_log_pos[日志偏移量]在all.sql中;或者主库中使用 mysql> show master status; 进行查看。

mysql> change master to master_host='192.168.1.100', //Master 服务器Ip
       master_port=3306,
       master_user='repl',
       master_password='123456', 
       master_log_file='master-bin.000001',//Master服务器产生的日志
       master_log_pos=0;

四、查看slave上mysql的数据文件中是否有一个master.info,若是有打开后看到的就是上一步中输入的内容。开启slave功能

mysql> start slave;

五、查看从库的状态

mysql> show slave status\G

 

master和slave在修改my.cnf后都要将mysqld服务从新启动。

相关文章
相关标签/搜索