在我们前面的教程中,我们已经学习了 如何安装和配置 MariaDB[1],也学习了 管理 MariaDB 的一些基础命令[2]。现在我们来学习,如何在 MariaDB 服务器上配置一个主从复制。
复制是用于为我们的数据库创建多个副本,这些副本可以在其它数据库上用于运行查询,像一些非常繁重的查询可能会影响主数据库服务器的性能,或者我们可以使用它来做数据冗余,或者兼具以上两个目的。我们可以将这个过程自动化,即主服务器到从服务器的复制过程自动进行。执行备份而不影响在主服务器上的写操作。
因此,我们现在去配置我们的主-从复制,它需要两台安装了 MariaDB 的机器。它们的 IP 地址如下:
- 主服务器 - 192.168.1.120 主机名 - master.ltechlab.com
- 从服务器 - 192.168.1.130 主机名 - slave.ltechlab.com
MariaDB 安装到这些机器上之后,我们继续进行本教程。如果你需要安装和配置 MariaDB 的教程,请查看这个教程[3]。
我们现在进入到 MariaDB 中的一个命名为 important 的数据库,它将被复制到我们的从服务器。为开始这个过程,我们编辑名为 /etc/my.cnf 的文件,它是 MariaDB 的配置文件。
$ vi /etc/my.cnf
在这个文件中找到 [mysqld] 节,然后输入如下内容:
[mysqld] log-bin server_id=1 replicate-do-db=important bind-address=192.168.1.120
保存并退出这个文件。完成之后,需要重启 MariaDB 服务。
$ systemctl restart mariadb
接下来,我们登入我们的主服务器上的 Mariadb 实例。
$ mysql -u root -p
在它上面创建一个命名为 slaveuser 的为主从复制使用的新用户,然后运行如下的命令为它分配所需要的权限:
STOP SLAVE; GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'iamslave'; FLUSH PRIVILEGES; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
注意: 我们配置主从复制需要 MASTER_LOG_FILE 和 MASTER_LOG_POS 的值,它可以通过 show master status 来获得,因此,你一定要确保你记下了它们的值。
这些命令运行完成之后,输入 exit 退出这个会话。
现在,我们需要去为我们的数据库 important 创建一个备份,可以使用 mysqldump 命令去备份。
$ mysqldump -u root -p important > important_backup.sql
备份完成后,我们需要重新登录到 MariaDB 数据库,并解锁我们的表。
$ mysql -u root -p $ UNLOCK TABLES;
然后退出这个会话。现在,我们移动我们刚才的备份到从服务器上,它的 IP 地址是:192.168.1.130。
在主服务器上的配置已经完成了,现在,我们开始配置从服务器。
我们再次去编辑(从服务器上的) /etc/my.cnf 文件,找到配置文件中的 [mysqld] 节,然后输入如下内容:
[mysqld] server-id = 2 replicate-do-db=important [ …]
现在,我们恢复我们主数据库的备份到从服务器的 MariaDB 上,运行如下命令:
$ mysql -u root -p <p>当这个恢复过程结束之后,我们将通过登入到从服务器上的 MariaDB,为数据库 <span style="padding: 4px 8px; font-size: 12px; border-radius: 3px; color: #c7254e; background-color: #f9f2f4;">important</span> 上的用户 'slaveuser' 授权。</p> <pre class="brush:php;toolbar:false">$ mysql -u root -p
GRANT ALL PRIVILEGES ON important.* TO 'slaveuser'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
接下来,为了这个变化生效,重启 MariaDB。
$ systemctl restart mariadb
记住,我们需要 MASTER_LOG_FILE 和 MASTER_LOG_POS 变量的值,它可以通过在主服务器上运行 SHOW MASTER STATUS 获得。现在登入到从服务器上的 MariaDB,然后通过运行下列命令,告诉我们的从服务器它应该去哪里找主服务器。
STOP SLAVE; CHANGE MASTER TO MASTER_HOST= '192.168.1.110′, MASTER_USER='slaveuser', MASTER_PASSWORD='iamslave', MASTER_LOG_FILE='mariadb-bin.000001′, MASTER_LOG_POS=460; SLAVE START; SHOW SLAVE STATUS\G;
注意: 请根据你的机器的具体情况来改变主服务器的配置。
我们将在我们的主服务器上创建一个新表来测试主从复制是否正常工作。因此,登入到主服务器上的 MariaDB。
$ mysql -u root -p
选择数据库为 important:
use important;
在这个数据库上创建一个名为 test 的表:
create table test (c int);
然后在这个表中插入一些数据:
insert into test (c) value (1);
检索刚才插入的值是否存在:
select * from test;
你将会看到刚才你插入的值已经在这个新建的表中了。
现在,我们登入到从服务器的数据库中,查看主从复制是否正常工作。
$ mysql -u root -p $ use important; $ select * from test;
你可以看到与前面在主服务器上的命令输出是一样的。因此,说明我们的主从服务工作正常,没有发生任何问题。
我们的教程结束了,请在下面的评论框中留下你的查询/问题。
以上是如何在 MariaDB 中配置主从复制的详细内容。更多信息请关注PHP中文网其他相关文章!

本指南探讨了用于监视和故障排除磁盘I/O性能的基本Linux工具,这是对服务器速度和应用程序响应的关键度量。 磁盘I/O性能直接影响从和书面读取数据的速度

对于新的Linux用户,识别连接的设备至关重要,尤其是USB驱动器。 本指南提供了几种命令行方法来确定USB设备的名称,这对于格式化等任务必不可少。 虽然USB驱动器经常自动安装(例如, /

Linux系统,特别是磁盘空间有限的系统,最常见的问题之一就是根分区(/)空间耗尽。 出现此问题时,您可能会遇到以下错误: No space left on device 别慌!这只是表示您的根目录(/ 分区)已满,这是一个常见问题,尤其是在磁盘空间有限的系统或全天候运行的服务器上。 发生这种情况时,您可能会遇到以下问题: 无法安装或升级软件包。 系统启动失败。 服务无法启动。 无法写入日志或临时文件。 本文将引导您完成识别问题、安全清理空间以及防止再次发生此问题的实用步骤。这些说明适用于初

本文探讨了Linux用户的一流记事本替代方案。 记事本虽然在Windows上很棒,但缺少Linux版本。 本指南提供了适合各种需求和偏好的各种选择。 最高记录的替代方案

几天前,我遇到了32位CentOS 8分布,并决定在较旧的32位系统上进行测试。 启动后,我发现了一个网络连接问题。连接将下降,每次重新启动后都需要手动修复。这个公关

让我们澄清什么构成不良扇区或不良区块:这是硬盘驱动器或闪存的一部分,它变得不可读取或无法写入,这通常是由于对磁盘表面的物理损害或闪烁的闪存闪存晶体管。 累积

CP命令(“复制”)是Linux和其他类似Unix的系统的基本工具,用于复制文件和目录。 虽然对本地文件传输有效,但对于基于网络的副本,SCP(安全副本)是首选的

在Linux系统中使用rm命令删除文件或目录时,如果遇到以下错误: rm: cannot remove 'file-or-directory': Device or resource busy 不用担心,这是一个常见问题,这意味着您尝试删除的文件或目录当前正被系统或正在运行的进程使用。 错误原因 “设备或资源繁忙”消息表示文件或目录正在使用中。为了避免破坏系统或导致数据丢失,Linux阻止删除正在使用的文件。 常见原因包括: 您的终端当前位于要删除的目录内。 程序或进程正在使用该文件或目录。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中