在Ubuntu上实现MySQL的复制功能,通常是指设置一个MySQL主服务器(Master)和一个或多个MySQL从服务器(Slave),以便从服务器可以自动复制主服务器上的数据变更。以下是实现MySQL复制的基本步骤:
my.cnf
(或my.ini
)文件,启用二进制日志(binary logging)和设置唯一的服务器ID。[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name # 只复制指定的数据库
my.cnf
(或my.ini
)文件,设置唯一的服务器ID。[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name # 只复制指定的数据库
在主服务器上创建一个用于复制的用户,并授予相应的权限。
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
在主服务器上执行SHOW MASTER STATUS;
命令,记录下File
和Position
的值。
SHOW MASTER STATUS;
在从服务器上执行CHANGE MASTER TO
命令,指定主服务器的信息。
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
在从服务器上启动复制进程。
START SLAVE;
在从服务器上执行SHOW SLAVE STATUS\G
命令,检查复制是否正常运行。
SHOW SLAVE STATUS\G
确保Slave_IO_Running
和Slave_SQL_Running
都是Yes
。
通过以上步骤,你可以在Ubuntu上实现MySQL的复制功能。根据具体需求,可能还需要进行一些额外的配置和优化。