精彩评论
- al2359(2年前 (2023-02-06))
求科学离线插件,谢谢!34401355@qq.com
评:改版梅林固件安装SS【shadowsocks】科学上网插件教程 - al2359(2年前 (2023-02-06))
求科学离线插件,谢谢!!!
评:改版梅林固件安装SS【shadowsocks】科学上网插件教程
同步同步、跟云同步的道理一样,起到一个备份、实时更新的作用而已。
好处
缺陷
主服务器:
binlog
文件。从服务器:
binlog
文件并把内容写到从服务器的 relay
日志中。relay
日志然后执行同步到 mysql。只需记住主从同步的处理分别启动了 3 个线程来完成,至于主从之间是怎么进行通信的下面我会开始讲解。
介绍了主从同步的一些基本概念与原理后,现在我们来开始进行配置。
本文不采用在同一台主机上来搭建主从同步,其目的是个人觉得这样学起来不易于理解,在实际应用中也不会共用一台主机,所以这里我已经准备好两台服务器,一个作为主,一个作为从。
假设我的主服务器 ip 是 106.14.15.1
,
从服务器 ip 地址是 106.11.11.2
记住好这主从服务器的 ip 啊,可别混淆了。
确保主从服务器都已下载好 mysql,本文用的 mysql 版本是 5.7,如果你还不知道怎么下载 mysql,可以参考我前面写过的 Centos 7 下载 Mysql 完整详细步骤。
下载一个 ssh 远程控制服务器工具,这里我用的是 MobaXterm
。
接下来我将把主称为 master
,从称为 slave
,毕竟主从原文就是 master&slave 老外起的名字,不然总是主从从主的,看起来怪别扭。
/etc/my.cnf
# 绑定 ip 地址,其目的是可以让其它服务器连接上该数据库。
bind-address = 0.0.0.0
# 唯一标识符,主设为 1,子设为 2 3 4 5 ...
server-id = 1
# 启动 login 也就是主会将所有操作都写进 binlog 文件里面。
log-bin=/var/lib/mysql/log-bin.log
mysql -u root -p
# 新建 slave 用户。
CREATE USER 'slave'@'106.14.15.1' IDENTIFIED BY 'secret__1';
# 开始授权,也就是创建 slave 用户后还要指定哪台服务器能使用此账号进行登录 mysql 。
# 如果指定 'slave''@'% 则代表任意服务器可以登录进来。
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'106.11.11.2' IDENTIFIED BY 'secret__1';
# 刷新权限,不刷新的话上面的创建不会立即生效的。
FLUSH PRIVILEGES;
# 开始锁表:在锁表期间无法对进行写,其目的是保证主从同步期间没有其它额外数据写进来。
FLUSH TABLES WITH READ LOCK;
# 获取主服务器的 logbin 文件索引 和 偏移量。(每个 mysql 打印都是不一样的)
# 注意:这是主从同步最关键的两个值,同步就靠它俩了,所以务必记住,在从服务器配置的时候会用到。
SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: log-bin.000735
Position: 154
# 拷贝所有数据库,并放到 /root/all-databases.sql 下面。
mysqldump -u root -p --all-databases --master-data > /root/all-databases.sql
UNLOCK TABLES;
exit;
# 如果你的 ssh 端口默认不是 22 则可以通过 -P 指定端口。
scp /root/all-databases.sql root@106.11.11.2:/tmp/
主服务器的配置就这样完成了啦,是不是很简单?
/etc/my.cnf
servier-id = 2
log-bin = /var/lib/mysql/log-bin.log
mysql -u root -p < /tmp/all-databases.sql
如果提示: This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL ‘’ first.
需要进入 mysql -u root -p 然后输入:STOP SLAVE;
停掉 SLAVE
mysql -u root -p
# 停掉 SLAVE
STOP SLAVE;
# 还记得上面 master 创建的用户吗?这里就可以用到了。
CHANGE MASTER TO MASTER_HOST='106.13.226.62',
MASTER_USER='slave',
MASTER_PASSWORD='Guanli1_',
# 还记得 SHOW MASTER STATUS\G 的两个重要参数吗?,这里就可以用到了。
MASTER_LOG_FILE='log-bin.000733',
MASTER_LOG_POS=5752;
# 启动 SLAVE 表示开始连接主服务器数据库进行同步工作。
START SLAVE;
# 查看 SLAVE 状态,如果出现 IO 与 SQL 均为 yes 那么你整个主从同步就已经完成并正在运行了。
# IO / SQL 就是线程,还记得上面说过的【工作原理】吗?
SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果出现 IO / SQL 状态为 no,可以通过 SHOW SLAVE STATUS \G 里面的输出比如 Last_Error 来排除问题
现在我们来实验一下,在 master 服务器中新建一个数据库,看看 slave 服务器是否同步成功。
Master
mysql -u root -p
CREATE DATABASE products;
Slave
mysql -u root -p
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| products |
+--------------------+
可以看到 slave 已经同步过来了,至此主从同步的搭建就完成了,也没有那么难嘛对不对?
另外, my.cnf 可以配置一些主从的其它配置选项,比如 sync_binlog = 1 时表示遇到意外情况时是否强制写入硬盘确保同步正常,又比如 slave-skip-errors = all 表示在同步的过程中,如果出现 sql 报错是否忽略强制执行,避免 SQL 线程过掉等。
具体详细配置不是本文范畴,可自行搜索或参考文档。
「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」
上一篇:如何使用VmShell的Ikuai.iso镜像包通过VPS搭建远程VPN拨号系统
求科学离线插件,谢谢!34401355@qq.com
评:改版梅林固件安装SS【shadowsocks】科学上网插件教程求科学离线插件,谢谢!!!
评:改版梅林固件安装SS【shadowsocks】科学上网插件教程