mysql主从数据复制

一、为从数据库设置复制账号

grant REPLICATION SLAVE on *.* To 'backup'@'%' identified by 'backuppwd'

flush privileges

 

二、导出数据

(1)直接复制数据文件目录方法

a. 停止数据库写数据

flush tables with read lock

 

b.显示此时master的状态

show master status

计下此时主数据库的binlog的当前文件及文件中的偏移位置(主数据库必须打开log-bin选项),这个在启动从数据库时需要,以便使从数据库启动时知道从哪里执行主数据库的改变(执行主数据的日志)

+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73       |              |                  |
+---------------+----------+--------------+------------------+

 

c.innodb表需要关闭数据库

mysqladmin -uroot shutdown

 

d.导出数据

tar cvfz data.tar.gz 数据库文件目录

 

e.解锁所有表

unlock tables

 

(2)利用mysqldump导出

nohup /usr/local/mysql/bin/mysqldump -u<user> -p<pwd> -h<host> db --master-data --sock=/usr/local/mysql/tmp/mysqld.sock > master.sql &

 

三、将数据导入从数据库

(1)直接复制到数据目录

cp命令(确保数据文件目录的权限)

(2)命令导入

mysql -u<user> -p<pwd> -h<host> db < master.sql

 

四、配置数据库配置文件

(1)主数据库

[mysqld]
log-bin=mysql-bin
server-id=1

(2)从数据库

[mysqld]
server-id=2
master-host=<master ip>
master-user=<user>
master-password=<pwd>
master-port=3306
master-connect-retry=60
replicate-do-db=backup_db    #要复制的数据库
log-slave-updates  #可以作为master,或者是在从数据库启动命令时加入参数--logs-slave-updates,可以配置“主-->从-->从”的链式结构
read-only=1

 

五、启动从数据库

1.用--skip-slave-start选项启动从服务器,以便它不立即尝试连接主服务器

2.设置从数据库

在从服务器上执行下面的语句,用你的系统的实际值替换选项值:
mysql> CHANGE MASTER TO
  ->     MASTER_HOST='master_host_name',
  ->     MASTER_USER='replication_user_name',
  ->     MASTER_PASSWORD='replication_password',
  ->     MASTER_LOG_FILE='recorded_log_file_name',
  ->     MASTER_LOG_POS=recorded_log_position;

3.开启从数据库

start slave

 

六、主、从数据库进程

1.主数据库进程

   Binlog Dump线程

2.从数据库进程

   复制从I/O线程:与主数据库连接

   复制从SQL线程状态:执行从主数据库得到的binlog日志

 

七、从数据库日志文件

data目录下:
master.info               ---- 连接的主数据库的相关信息
relay-log.info            ---- 从数据库执行的相关信息

 

八、dump的--master-data选项

--master-data[=value]

该选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入CHANGE MASTER语句形式的转储输出,如果你使用该SQL转储主服务器以设置从服务器,从服务器从主服务器二进制日志的正确位置开始。如果选项值等于2,CHANGE MASTER语句被写成SQL注释。如果value被省略,这是默认动作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值