ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Linux环境下的MySQL复制 在大多数情况下,采用不同的MySQL主从复制比较常见,不同ip地址的服务器上的MySQL服务器实现一对一复制跟上一节比较相似. # 主从复制准备 确保主从服务器上安装了相同版本的数据库,设定主服务器的ip是192.168.1.100,从服务器的ip是192.168.1.101 登录主服务器,设置一个复制使用的账号,并授予replication slave权限. ```sql grant replication slave on *.* to 'repl'#'192.168.1.101' identified by '123'; ``` 修改主数据库服务器的配置文件my.conf,开启binlog,并设置server-id的值.需要重启生效 ```ini [mysqld] log-bin = /usr/local/var/mysql/mysql-bin server-id = 1 ``` 在主服务器上设置锁定有效,这个操作为了确保没有数据库操作 ```sql flush tables with read lock; ``` 查询主服务器行当前的二进制日志和偏移量.这个操作是为了在从服务器启动以后,从这个点进行数据库的恢复 ```sql show master status; ``` 主数据停止更新操作,需要生成数据的备份可以通过MySQLdump导出数据.备份完成以后,恢复写操作 ```sql unlock tables; ``` 修改从数据库的配置文件my.cnf,增加server-id参数.server-id的值是唯一的 ```ini [mysqld] server-id = 2 ``` 在从服务器上,使用--skip-slave-start选项启动从数据库,这样不会立即启动从数据服务上的复制进程,方便我们对从数据库的服务进一步的配置. ```sql mysqld_safe --skip-slave-start & ``` 对从数据库做相应的设置,指定复制使用的用户,主数据库服务器的ip,端口以及开始执行复制的日志文件和位置 ```sql stop slave; change master to ->master_host = '192.168.1.100', ->master_user = 'repl', ->master_password = '123', ->masrer_log_file = 'mysql-bin.000029', ->master_log_pos = 109; start slave; ``` ## 以下操作可以结合win系统主从复制操作查看 在从服务器上执行show slave starus \G命令查询从服务器的状态 也可以用show processlist \G命令查询从服务器的进程状态 ## 主从复制测试 尝试在Master主机添加一条记录,查看Slave主机是否同步