grant all on *.* to user1@192.168.10.2 identified by 'password' 在主服务器上给从服务器设置授权用户 可以在192.168.10.2上登录mysql
开启mysql bin-log日志
log-bin=mysql-bin
server-id =1 不能重复 即使是多从各个也不能相同
show grants for user1@192.168.10.2 查看登录主服务器上从服务器信息
mysql的bin-log存储了增删改的操作 所有的文件都是以 mysql-bin.0000001 的形式存储
可以通过命令查看log-bin 是否开启
mysql> show variables like "%log_bin%";
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
//刷新log-bin日志 此时会多出来一个新的log-bin日志 记录从此刻之后的记录
mysql> flush logs;
Query OK, 0 rows affected (0.08 sec)
// 查看最后一个bin日志
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 107 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
//清空所有的bin-log日志
mysql> reset master;
Query OK, 0 rows affected (0.10 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)
// 查看bin-log日志
[root@localhost data]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000001
导出数据
/usr/local/mysql/bin/mysqldump -uroot -p123456 test -l -F > '/tmp/test.sql'
-F 是flush logs 可以重新生成新的日志文件 -l 读锁
导入
/usr/local/mysql/bin/mysql -uroot -p123456 test -v -f < '/tmp/test.sql'
-v 查看导入的详细信息
-f是中间遇到错误时 可以skip过去继续执行下面的语句
//查看bin-log 日子如果出现 mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8'
/usr/local/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000001 命令打开
[root@localhost test]# cd /usr/local/mysql/data/
[root@localhost test]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 | /usr/local/mysql/bin/mysql -uroot -p123456
mysqlbinlog 常跟的参数
--start-position='50'
--stop-positon='100'
--start-date='2015-08-01 19:00:00'
--stop-date='2015-08-01 20:00:00'
scp /tmp/test.sql root@192.168.10.2:/tmp/ 把当前备份的sql文件 同步到从服务器上去
server-id=2
master-user=192.168.10.1 去连接主mysql的地址
master-user=user1 去连接主mysql的用户
master-password=456
master-port=3306
show slave status\G 查看从服务器的同步情况
slave_IO_Running:Yes
此进程负责从主服务器上读取binlog日志,并写入到从服务器上的中继日志中
Salve_SQL_Running:Yes
此进程负责读取并且执行中继日志中的binlog日志
注:以上两个都为yes则表明同步成功,只要其中一个进程的状态是no,则表示复制进程停止,错误原因可以从“last_error”字段的值中看到