3、在master上增加一个同步的用户名
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
注:
如果mysql版本在4.0.2以前的版本请用
mysql> GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
4、接下来操作要master上要同步的数据库
mysql> USE test;
mysql> FLUSH TABLES WITH READ LOCK; #锁定要同步的test表,然后导出数据结构
执行如下命令查看master的状态
mysql> SHOW MASTER STATUS;
得到如下结果
Code:
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+----------------------+----------+--------------+------------------+
| mysql_binary_log.025 | 796947 | test | mysql |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
接下来备份要同步数据库(为导入slave作准备)
$ mysqldump --opt test > test.sql
mysql> UNLOCK TABLES; #已做好同步数据库结构导出后,解锁这个表
二、slave操作
1、把master里导出的同步数据库结构再导入slave的mysql里
mysql tes < test.sql
注:
MASTER_LOG_FILE='mysql_binary_log.025',
MASTER_LOG_POS=796947;
上面这两条是一开始从master上进入mysql,运行 SHOW MASTER STATUS; 查看到的,在实际操作中也可以不加的。
##############################################
在master的mysql里运行
mysql > show processlist;
看到两个 system user 就是正常的
+----+-------------+----------------+------+-------------+------+---------------
--------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State
| Info |
+----+-------------+----------------+------+-------------+------+---------------
--------------------------------------------------------+------------------+
| 1 | system user | | NULL | Connect | 4499 | Waiting for ma
ster to send event | NULL |
| 2 | system user | | NULL | Connect | 4499 | Has read all r
elay log; waiting for the I/O slave thread to update it | NULL |
| 7 | root | localhost:1309 | test | Query | 0 | NULL
| show processlist |
| 40 | backup | ETE-KF2:1354 | NULL | Binlog Dump | 513 | Has sent all b
inlog to slave; waiting for binlog to be updated | NULL |
+----+-------------+----------------+------+-------------+------+---------------
--------------------------------------------------------+------------------+
4 rows in set (0.00 sec)
mysql> show master status;
出现如下:
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+----------------------+----------+--------------+------------------+
| mysql_binary_log.001 | 1011 | test | mysql |
+----------------------+----------+--------------+------------------+
在slave的mysql里运行
mysql> show processlist;
出现如下:
+----+-------------+----------------+------+---------+------+-------------------
----------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State
| Info |
+----+-------------+----------------+------+---------+------+-------------------
----------------------------------------------------+------------------+
| 3 | root | localhost:1353 | test | Query | 0 | NULL
| show processlist |
| 4 | system user | | NULL | Connect | 740 | Waiting for master
to send event | NULL |
| 5 | system user | | NULL | Connect | 730 | Has read all relay
log; waiting for the I/O slave thread to update it | NULL |
+----+-------------+----------------+------+---------+------+-------------------
----------------------------------------------------+------------------+
3 rows in set (0.00 sec)