主数据库:192.168.3.10
从数据库:192.168.3.11
在主服务器(192.168.3.10)上:首先登录到MySQL,然后运行以下命令创建用于复制的专用用户:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
这将在所有数据库和表上为’user’赋予REPLICATION SLAVE权限。
接下来,你需要编辑MySQL配置文件(一般位于/etc/mysql/my.cnf或/etc/my.cnf)。在[mysqld]部分添加以下行:
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=your_database_name # 只复制特定的数据库, 如果需要复制所有数据, 则不需要这行
然后重启MySQL服务,通常可以使用 sudo service mysql restart 或 sudo systemctl restart mysql 命令。
在主服务器(192.168.3.10)上:返回mysql提示符,运行下面的命令,你会看到二进制日志文件名(binlog file) 和位置(position)。
SHOW MASTER STATUS;
记住这两个值,稍后会在从服务器中使用。
在从服务器(192.168.3.11)上:同样地,需要修改MySQL的配置文件,在[mysqld]部分添加以下行:
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
systemctl restart mysqld
然后重启MySQL服务。
在从服务器(192.168.3.11)上:登录到MySQL,运行下面的命令来配置主服务器。请将MASTER_LOG_FILE和MASTER_LOG_POS替换为你在步骤3中记录的值:
CHANGE MASTER TO
MASTER_HOST='192.168.3.10',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='binlog_file',
MASTER_LOG_POS=bin_log_position;
在从服务器(192.168.3.11)上:运行以下命令开始复制过程:
START SLAVE;