在MySQL中设置主从复制入门实例

在mysql中设置主从复制入门实例

mysql复制示例:一个master将向单个slave发送信息。为了使进程工作,您将需要两个IP地址:主服务器之一和从属设备之一。

本教程将使用以下IP地址:

12.34.56.789-主数据库12.23.34.456-从数据库

本文假设您具有sudo权限的用户并且已安装MySQL。 如果你没有mysql,你可以用这个命令安装:

sudo apt-get install mysql-server mysql-client

第一步 – 配置主数据库

打开主服务器上的mysql配置文件。

sudo nano /etc/mysql/my.cnf一旦进入该文件,我们需要进行一些更改。第一步是找到如下所示的部分,将服务器绑定到本地主机:bind-address            = 127.0.0.1将标准IP地址替换为服务器的IP地址。bind-address            = 12.34.56.789 下一个配置更改是指位于[mysqld]部分中的server-id。 您可以为此点选择任何数字(可能更容易从1开始),但该数字必须是唯一的,并且不能与复制组中的任何其他服务器标识匹配。 我要去打电话这个1。确保此行已取消注释。server-id               = 1移动到log_bin行。 这是保存复制的真实细节的地方。 从属程序将复制在日志中注册的所有更改。 对于这一步,我们只需要取消注释引用log_bin的行:log_bin                 = /var/log/mysql/mysql-bin.log最后,我们需要指定将在从服务器上复制的数据库。 您可以通过为所有您需要的数据库重复此行,包括多个数据库。binlog_do_db            = newdatabase完成所有更改后,继续保存并退出配置文件。刷新MySQL。
sudo service mysql restart

接下来的步骤将在MySQL shell中进行,本身。

打开MySQL shell。

mysql -u root -p

我们需要给从属权限。 您可以使用此行命名您的从属并设置其密码。 命令应采用以下格式:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

下一部分是有点bit。。 为了完成任务,你需要在除了你已经使用了几步倒行一打开一个新窗口或标签 。

在当前标签页切换到“newdatabase”。

USE newdatabase;

接下来,锁定数据库以防止任何新的更改:

FLUSH TABLES WITH READ LOCK;

然后输入:

SHOW MASTER STATUS;

你会看到一个表应该看起来像这样:

mysql> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 |      107 | newdatabase  |                  |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)

这是从数据库将开始复制的位置。 记录这些数字,他们将在以后有用。

如果在同一个窗口中进行任何新的更改,数据库将自动解锁。 因此,您应该打开新的选项卡或窗口,然后继续下一步。

继续数据库仍然锁定,在新窗口中使用mysqldump导出数据库(确保您在bash shell中而不是在MySQL中键入此命令)。

mysqldump -u root -p --opt newdatabase > newdatabase.sql

现在,返回到您的原始窗口,解锁数据库(使它们可写入)。 通过退出shell完成。

UNLOCK TABLES;QUIT;

现在你已经完成了master数据库的配置。

Writer Writer

企业级AI内容创作工具

Writer 176 查看详情 Writer 第二步 – 配置从数据库

配置主数据库之后。 你可以把它放在一边,我们现在将开始配置从数据库。

登录到从服务器,打开MySQL shell并创建要从主服务器复制的新数据库(然后退出):

CREATE DATABASE newdatabase;EXIT;导入先前从主数据库导出的数据库。mysql -u root -p newdatabase Now we need to configure the slave configuration in the same way as we did the master:sudo nano /etc/mysql/my.cnfWe have to make sure that we have a few things set up in this configuration. The first is the server-id. This number, as mentioned before needs to be unique. Since it is set on the default (still 1), be sure to change it’s something different.server-id               = 2Following that, make sure that your have the following three criteria appropriately filled out:relay-log               = /var/log/mysql/mysql-relay-bin.loglog_bin                 = /var/log/mysql/mysql-bin.logbinlog_do_db            = newdatabaseYou will need to add in the relay-log line: it is not there by default.Once you have made all of the necessary changes, save and exit out of the slave configuration file.Restart MySQL once again:sudo service mysql restartThe next step is to enable the replication from within the MySQL shell.Open up the the MySQL shell once again and type in the following details, replacing the values to match your information:CHANGE MASTER TO MASTER_HOST='12.34.56.789',MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  107;This command accomplishes several things at the same time:It designates the current server as the slave of our master server. It provides the server the correct login credentialsLast of all, it lets the slave server know where to start replicating from; the master log file and log position come from the numbers we wrote down previously.With that—you have configured a master and slave server. Activate the slave server:START SLAVE;You be able to see the details of the slave replication by typing in this command. The G rearranges the text to make it more readable.SHOW SLAVE STATUSG If there is an issue in connecting, you can try starting slave with a command to skip over it:SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START; All done. See MoreMySQL replication has a lot different options, and this was just a brief overview.If you have any further questions about the specific capabilities of MySQL, feel free to post your questions in our Q&A Forum and we’ll be happy to answer them. By Etel Sverdlov

现在我们需要以与我们做主机相同的方式配置从机配置:

sudo nano /etc/mysql/my.cnf我们必须确保我们在这个配置中设置了一些东西。 第一个是服务器标识。 这个数字,如前所述需要是唯一的。 因为它被设置为默认(仍然是1),一定要改变它的东西不同。server-id               = 2之后,请确保您已正确填写以下三个条件:relay-log               = /var/log/mysql/mysql-relay-bin.loglog_bin                 = /var/log/mysql/mysql-bin.logbinlog_do_db            = newdatabase

您将需要在中继日志行中添加:默认情况下不存在。 一旦完成所有必要的更改,保存并退出从配置文件。

再次重新启动MySQL:

sudo service mysql restart

下一步是在MySQL shell中启用复制。

再次打开MySQL shell,输入以下详细信息,替换值以匹配您的信息:

CHANGE MASTER TO MASTER_HOST='12.34.56.789',MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  107;

此命令同时完成几个事情:

它将当前服务器指定为我们的主服务器的从属。

它为服务器提供正确的登录凭据

最后,它让从服务器知道从哪里开始复制; 主日志文件和日志位置来自我们之前写下的数字。

这样,您已经配置了主服务器和从服务器。

激活从服务器:

START SLAVE;

通过键入此命令,您可以看到从复制的详细信息。 G重新排列文本,使其更易读。

SHOW SLAVE STATUSG

如果在连接中存在问题,可以尝试使用命令启动从器件以跳过它:

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START; 

全做完了。

以上就是在MySQL中设置主从复制入门实例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/939750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月29日 17:32:15
下一篇 2025年11月29日 17:32:36

相关推荐

  • Linux中如何安装Nginx服务_Linux安装Nginx服务的完整指南

    首先更新系统软件包,然后通过对应包管理器安装Nginx,启动并启用服务,开放防火墙端口,最后验证欢迎页显示以确认安装成功。 在Linux系统中安装Nginx服务是搭建Web服务器的第一步。Nginx以高性能、低资源消耗和良好的并发处理能力著称,广泛用于静态内容服务、反向代理和负载均衡。以下是在主流L…

    2025年12月6日 运维
    000
  • Linux journalctl与systemctl status结合分析

    先看 systemctl status 确认服务状态,再用 journalctl 查看详细日志。例如 nginx 启动失败时,systemctl status 显示 Active: failed,journalctl -u nginx 发现端口 80 被占用,结合两者可快速定位问题根源。 在 Lin…

    2025年12月6日 运维
    100
  • Linux如何防止缓冲区溢出_Linux防止缓冲区溢出的安全措施

    缓冲区溢出可通过栈保护、ASLR、NX bit、安全编译选项和良好编码实践来防范。1. 使用-fstack-protector-strong插入canary检测栈破坏;2. 启用ASLR(kernel.randomize_va_space=2)随机化内存布局;3. 利用NX bit标记不可执行内存页…

    2025年12月6日 运维
    000
  • Linux如何优化系统性能_Linux系统性能优化的实用方法

    优化Linux性能需先监控资源使用,通过top、vmstat等命令分析负载,再调整内核参数如TCP优化与内存交换,结合关闭无用服务、选用合适文件系统与I/O调度器,持续按需调优以提升系统效率。 Linux系统性能优化的核心在于合理配置资源、监控系统状态并及时调整瓶颈环节。通过一系列实用手段,可以显著…

    2025年12月6日 运维
    000
  • Pboot插件数据库连接的配置教程_Pboot插件数据库备份的自动化脚本

    首先配置PbootCMS数据库连接参数,确保插件正常访问;接着创建auto_backup.php脚本实现备份功能;然后通过Windows任务计划程序或Linux Cron定时执行该脚本,完成自动化备份流程。 如果您正在开发或维护一个基于PbootCMS的网站,并希望实现插件对数据库的连接配置以及自动…

    2025年12月6日 软件教程
    000
  • Linux命令行中wc命令的实用技巧

    wc命令可统计文件的行数、单词数、字符数和字节数,常用-l统计行数,如wc -l /etc/passwd查看用户数量;结合grep可分析日志,如grep “error” logfile.txt | wc -l统计错误行数;-w统计单词数,-m统计字符数(含空格换行),-c统计…

    2025年12月6日 运维
    000
  • Linux命令行中fc命令的使用方法

    fc 是 Linux 中用于管理命令历史的工具,可查看、编辑并重新执行历史命令。输入 fc 直接编辑最近一条命令,默认调用 $EDITOR 打开编辑器修改后自动执行;通过 fc 100 110 或 fc -5 -1 可批量编辑指定范围的历史命令,保存后按序重跑;使用 fc -l 列出命令历史,支持起…

    2025年12月6日 运维
    000
  • VSCode终端美化:功率线字体配置

    首先需安装Powerline字体如Nerd Fonts,再在VSCode设置中将terminal.integrated.fontFamily设为’FiraCode Nerd Font’等支持字体,最后配合oh-my-zsh的powerlevel10k等Shell主题启用完整美…

    2025年12月6日 开发工具
    000
  • Linux命令行中locate命令的快速查找方法

    locate命令通过查询数据库快速查找文件,使用-i可忽略大小写,-n限制结果数量,-c统计匹配项,-r支持正则表达式精确匹配,刚创建的文件需运行sudo updatedb更新数据库才能查到。 在Linux命令行中,locate 命令是快速查找文件和目录路径的高效工具。它不直接扫描整个文件系统,而是…

    2025年12月6日 运维
    000
  • Linux文件系统rsync命令详解

    rsync通过增量同步高效复制文件,支持本地及远程同步,常用选项包括-a、-v、-z和–delete,结合SSH可安全传输数据,配合cron可实现定时备份。 rsync 是 Linux 系统中一个非常强大且常用的文件同步工具,能够高效地在本地或远程系统之间复制和同步文件与目录。它以“增量…

    2025年12月6日 运维
    000
  • Linux systemctl list-dependencies命令详解

    systemctl list-dependencies 用于查看 systemd 单元的依赖关系,帮助排查启动问题和优化启动流程。1. 基本语法为 systemctl list-dependencies [选项] [单元名称],默认显示 default.target 的依赖。2. 常见单元类型包括 …

    2025年12月6日 运维
    000
  • 如何在mysql中安装mysql插件扩展

    安装MySQL插件需先确认插件文件位于plugin_dir目录,使用INSTALL PLUGIN命令加载,如INSTALL PLUGIN keyring_file SONAME ‘keyring_file.so’,并确保用户有SUPER权限,最后通过SHOW PLUGINS验…

    2025年12月6日 数据库
    000
  • 如何在mysql中定期清理过期备份文件

    通过Shell脚本结合cron定时任务实现MySQL过期备份文件自动清理,首先统一备份命名格式(如backup_20250405.sql)并存放在指定目录(/data/backup/mysql),然后编写脚本使用find命令删除7天前的.sql文件,配置每日凌晨2点执行的cron任务,并加入日志记录…

    2025年12月6日 数据库
    000
  • Linux文件系统中的ext4与xfs对比

    ext4适合通用场景,稳定性强,兼容性好,适用于桌面和中小型服务器;XFS擅长大规模高并发I/O,扩展性强,适用于大文件与高性能需求环境。 在Linux系统中,ext4和XFS是两种广泛使用的文件系统,各自适用于不同的使用场景。选择哪一个取决于性能需求、数据规模以及工作负载类型。 设计目标与适用场景…

    2025年12月6日 运维
    000
  • 如何在Linux中处理磁盘满的问题?

    先使用df -h和du命令定位占用空间的目录或文件,再清理日志、缓存等可删除内容,并通过定期任务和监控预防问题复发。 当Linux系统提示磁盘空间不足时,关键是要快速定位问题源头并释放空间。以下是实用的排查和处理步骤。 检查磁盘使用情况 使用df命令查看各分区的使用情况: df -h:以易读方式显示…

    2025年12月6日 运维
    000
  • Linux命令行中free命令的使用方法

    free命令用于查看Linux内存使用情况,包括总内存、已用、空闲、共享、缓存及可用内存;使用-h可读格式显示,-s周期刷新,-c限制次数,-t显示总计,帮助快速评估系统内存状态。 free命令用于显示Linux系统中内存和交换空间的使用情况,包括物理内存、已用内存、空闲内存以及缓存和缓冲区的占用情…

    2025年12月6日 运维
    000
  • Linux命令行中tail -f命令的详细应用

    tail -f 用于实时监控文件新增内容,常用于日志查看;支持 -F 处理轮转、-n 指定行数、结合 grep 过滤,可监控多文件,需注意权限与资源释放。 tail -f 是 Linux 中一个非常实用的命令,主要用于实时查看文件的新增内容,尤其在监控日志文件时极为常见。它会持续输出文件末尾新增的数…

    2025年12月6日 运维
    000
  • 如何在Linux中快速复制大文件?

    使用cp、rsync或dd命令优化大文件复制,结合reflink、全量传输、大块大小设置及系统配置调整,可显著提升复制速度与资源利用率。 复制大文件时,速度和系统资源占用是关键。Linux 提供多种方式来高效完成大文件复制任务,选择合适的方法能显著提升效率。 使用 cp 命令并优化参数 cp 是最常…

    2025年12月6日 运维
    000
  • LINUX怎么查看系统所有用户组_Linux系统所有用户组查看方法

    首先使用getent group命令获取系统中所有用户组的完整列表,该命令从/etc/group文件和网络信息源读取数据,结果全面;接着可通过cat /etc/group直接查看本地用户组配置文件内容,适合快速检查本地组信息;最后利用bash内置命令compgen -g列出所有用户组名称,便于脚本处…

    2025年12月6日 系统教程
    000
  • 如何在mysql中安装mysql客户端命令行

    答案是安装MySQL客户端的方法因操作系统而异。首先通过mysql –version确认是否已安装,若未安装,则在Ubuntu/Debian系统使用sudo apt install mysql-client,在CentOS/RHEL/Fedora系统使用sudo yum或dnf inst…

    2025年12月6日 数据库
    000

发表回复

登录后才能评论
关注微信