1、更改master和slave配置文件
master配置文件
# cp/mysql/suppots-file/my-default-cnf
[client]
port=
socket=
[mysqld]
basedir=
datadir=
port=
server-id=
socket=/data/mysql.sock
log-bin=/data/mysql_bin
binlog_format=mixed/row/sql
binlog-do-db=
binlog-ignore-db=
long_query_time=1
relay-log=/data/relay_bin
relay-log-info-file=/data/relay_log.info
[mysqld_safe]
log-error=/data/mysql_err.log
pid-file=/data/mysql_pid.pid
slave配置文件
# cp/mysql/suppots-file/my-default-cnf
[client]
port=
socket=
[mysqld]
basedir=
datadir=
port=
server-id=
socket=/data/mysql.sock
log-bin=/data/mysql_bin
binlog_format=mixed/row/sql
binlog-do-db=
binlog-ignore-db=
long_query_time=1
relay-log=/data/relay_bin
relay-log-info-file=/data/relay_log.info
[mysqld_safe]
log-error=/data/mysql_err.log
pid-file=/data/mysql_pid.pid
2、打开二进制日志log-bin=
3、设置不同server-id=
4、授权主从复制的用户密码
mysql> grant replication slave on*.* to ‘rep‘@‘192.168.1.101‘ identified by ‘oracle‘;
mysql> flush privileges;
5、锁表
mysql> flush table with read lock;
6、重新打开一个窗口(第二个窗口)做备份
mysqldump -h127.0.0.1 -uroot -poracle--port=3307 -S /data/mysql.sock -A -B --events -X --master-data=1 |gzip>/opt/rep.sql.gz
注意:
-A备份全部
-B在备份文件中生成create table的命令,恢复时不需要指定数据库
-X锁表
--master-data=1不需要通过show master status查看二进制文件和位置,会在备份文件中记录,如果二进制文件不被删除,那么什么时候都可以做从库
7、在第一个窗口解锁
unlock tables;
8、在slave上做change master to操作
change master to
-> master_host=‘192.168.1.102‘,
-> master_port=3307,
-> master_user=‘rep‘,
-> master_password=‘oracle‘,
->master_log_file=‘mysqlbin.000003‘,
->master_log_pos=408;
如果在备份的时候使用了--master-data=1参数,那么这里就不用最后两句即可:
上列的这些信息会存放在slave的数据库目录的master.info中,下列查看:
[[email protected] 3308]# ll
total 110660
-rw-rw----. 1 mysql mysql 56 Jun 17 07:14 auto.cnf
-rw-rw----. 1 mysql mysql 12582912 Jun17 13:23 ibdata1
-rw-rw----. 1 mysql mysql 50331648 Jun17 13:23 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 Jun17 07:05 ib_logfile1
-rw-rw----. 1 mysql mysql 88 Jun 17 15:25 master.info
drwx------. 2 mysql mysql 4096 Jun 17 07:05 mysql
-rw-rw----. 1 mysql mysql 5 Jun 17 13:23 mysql03.pid
-rw-r-----. 1 mysql mysql 40502 Jun 17 15:25 mysql_err.log
drwx------. 2 mysql mysql 4096 Jun 17 07:05 performance_schema
drwx------. 2 mysql mysql 4096 Jun 17 07:05 test
[[email protected] 3308]# cat master.info
23
mysqlbin.000003
408
192.168.1.102
rep
oracle
3307
60
0
9、开启复制
mysql> start slave;
Query OK, 0 rows affected (0.05 sec)