博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02-MySQL主从复制原理。
阅读量:5820 次
发布时间:2019-06-18

本文共 3126 字,大约阅读时间需要 10 分钟。

都是用Ubuntu16.04系统,直接使用sudo apt-get install mysql 安装好数据库就好。

主库:192.168.3.191

从库:192.168.3.193

1. 开启mysqllogbin

vi /etc/mysql

server-id = 1 # 2台mysql要设置不同的ID

log-bin=mysqlbin_test.log # 开启mysqllogbin

2. 在主服务器192.168.3.191上面的数据库配置从库的登陆用户。

mysql> grant replication slave on *.* to 'rep'@'192.168.0.%' identified by 'test123';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to 'rep'@'192.168.3.%' identified by 'test123';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> flush table with read lock;

Query OK, 0 rows affected (0.00 sec)

3. 打开一个新的窗口登录192.168.3.191,先把数据库备份导出。

mysqldump -uroot -ptest456 -A -B --events --master-data=2 >/opt/mysql_test1.sql # 测试用没设置压缩

vim mysql_test1.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='mysqlbin_test.000009', MASTER_LOG_POS=1044; # 查看binlog点。

4. 回到第一窗口

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;

+------------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
| mysqlbin_test.000009 | 1044 | | |
+------------------------+----------+--------------+------------------+
mysql> show master logs;
+------------------------+-----------+
| Log_name | File_size |
+------------------------+-----------+
| mysqlbin_test.000001 | 548 |
| mysqlbin_test.000002 | 2537 |
| mysqlbin_test.000003 | 126 |
| mysqlbin_test.000004 | 126 |
| mysqlbin_test.000005 | 557 |
| mysqlbin_test.000006 | 4297 |
| mysqlbin_test.000007 | 126 |
| mysqlbin_test.000008 | 355 |
| mysqlbin_test.000009 | 1046 |
+------------------------+-----------+

5. 登陆到从服务器192.168.3.193的数据库

先恢复数据,先全量恢复一次:
mysql -uroot -p'test456' </opt/mysql_test1.sql

然后登陆数据库进行配置:

mysql -uroot -p'test456'

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.3.191',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='test123',
MASTER_LOG_FILE='mysqlbin_test.000009',
MASTER_LOG_POS=1044;

mysql> start slave;

mysql> flush privileges;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.3.191
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqlbin_test.000009
Read_Master_Log_Pos: 1218
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 432
Relay_Master_Log_File: mysqlbin_test.000009
Slave_IO_Running: Yes # 开
Slave_SQL_Running: Yes # 开
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1218
Relay_Log_Space: 587
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0 # 为0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)

6. 测试

在主库新建数据库然后到从库看有没有。

 

转载于:https://www.cnblogs.com/hejianping/p/10892749.html

你可能感兴趣的文章
POP3接收邮件
查看>>
32、SpringBoot-整合Dubbo
查看>>
python面向对象基础
查看>>
组装服务器注意事项
查看>>
HDU 2044 一只小蜜蜂(递归)
查看>>
docker 下 安装rancher 笔记
查看>>
spring两大核心对象IOC和AOP(新手理解)
查看>>
转载:EQ--biquad filter
查看>>
(网上摘抄)概念认知
查看>>
如何将计算机加入域 分类: AD域 Windo...
查看>>
采用get的方式提交数据到服务器
查看>>
数据分析相关
查看>>
无插件用Terminal/TotalTerminal的开当前finder位置
查看>>
Oracle优化器
查看>>
mui使用xcode离线打包 iosApp应用,集成高德地图sdk问题
查看>>
红黑树
查看>>
CListBox多选情况处理方法
查看>>
【转】 纯技术帖:MMOG网络同步算法揭秘
查看>>
[转]C++11 左值、右值、右值引用详解
查看>>
【JavaScript&jQuery】单选框radio,复选框checkbox,下拉选择框select
查看>>