主從複製的過程: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服務從新啓動。