主从复制的过程: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服务从新启动。