如何在PhpMyAdmin图形界面中搭建主从复制
我之前帮不少开发者解决过纯靠PhpMyAdmin配置MySQL主从复制的问题,确实官方文档对UI操作这块提得比较少,我把一步步的实操流程整理给你,全程尽量不用命令行:
主库(本地服务器)配置
1. 创建复制专用账户
进入本地的PhpMyAdmin后台,点击顶部导航的「用户账户」,然后点击「添加用户账户」:
- 用户名设为比如
repl_user(自定义即可) - 主机选择从库的公网IP(更安全),如果是测试阶段可以选
%(允许任意主机连接,但生产环境不建议) - 设置一个安全的密码,勾选「授予所有权限」下面的复制 slave和复制 client权限,其他权限无需授予
- 拉到页面底部点击「执行」保存用户
2. 开启二进制日志与设置服务器ID
点击顶部的「变量」(部分版本叫「系统变量」):
- 在搜索框输入
log_bin,把值改成ON,开启二进制日志(这是主从复制的核心基础,主库必须开启) - 再搜索
server_id,设置为1(主库建议用1,从库要设成不同的数值,比如2) - 修改完成后需要重启MySQL服务:如果PhpMyAdmin的「状态」页面里有「重启MySQL」按钮就直接点击;如果没有,可能需要在本地服务器上手动重启服务(这是少数可能需要命令行的场景,但大部分环境的PhpMyAdmin都提供重启选项)
3. 获取主库同步位点
点击顶部的「状态」页面,往下找到「二进制日志」板块:
- 记录下当前的「二进制日志文件」名称(比如
mysql-bin.000003)和「二进制日志位置」(比如156) - 同时,为了保证从库初始数据和主库一致,建议此时导出主库数据:点击「导出」,选择「自定义」格式,勾选「添加CREATE DATABASE语句」和「禁用外键检查」,选中所有需要同步的表后导出SQL文件。导出时记得勾选「锁定表以确保数据一致性」(如果是InnoDB引擎,也可以选「使用事务」来避免锁表)
从库(远程服务器)配置
1. 设置服务器ID
进入远程服务器的PhpMyAdmin,同样到「变量」页面:
- 搜索
server_id,设置为2(必须和主库的server_id不同,比如主库是1,从库就用2、3这类数值) - 可选操作:同样开启
log_bin,方便后续排查同步问题
2. 导入主库初始数据
点击顶部的「导入」,选择刚才从主库导出的SQL文件,点击「执行」完成导入,确保从库数据和主库完全一致
3. 配置主从同步并启动
找到顶部导航的「复制」(部分版本藏在「更多」或「操作」菜单里,不同PhpMyAdmin版本位置略有差异):
- 在「主服务器配置」区域,填写主库的公网IP、之前创建的复制用户名
repl_user、对应的密码 - 把之前记录的主库「二进制日志文件」和「二进制日志位置」填到对应的输入框里
- 点击「启动从服务器」(Start Slave)按钮
4. 验证同步状态
还是在「复制」页面的「从服务器状态」板块,检查两个关键状态:
Slave_IO_Running显示YesSlave_SQL_Running显示Yes
如果这两项都是Yes,说明主从复制已经成功运行了!
额外注意事项
- 主从库的MySQL版本尽量保持一致,避免出现兼容性问题
- 本地主库的防火墙要开放3306端口,允许远程从库的IP访问
- 如果你的PhpMyAdmin版本没有「复制」页面,可以用SQL查询来替代配置(这是唯一需要手动输入SQL的地方):
在从库的「SQL」页面执行:
然后执行:CHANGE MASTER TO MASTER_HOST='你的主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='你的复制用户密码', MASTER_LOG_FILE='刚才记录的日志文件名', MASTER_LOG_POS=刚才记录的位置;
之后同样可以在「状态」页面查看同步状态START SLAVE;
内容的提问来源于stack exchange,提问作者Alger
相关产品推荐
相关产品推荐

