以下是MySQL和PostgreSQL主从复制的配置步骤:
修改配置文件(/etc/my.cnf):
[mysqld]
server-id=1 # 主库唯一ID
log-bin=mysql-bin # 启用二进制日志
binlog_format=ROW # 推荐使用ROW格式
binlog_do_db=your_database # 可选:指定同步数据库
重启MySQL:systemctl restart mysqld。
创建复制用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
获取主库状态:
SHOW MASTER STATUS;
记录File(如mysql-bin.000001)和Position(如154),用于从库配置。
修改配置文件(/etc/my.cnf):
[mysqld]
server-id=2 # 从库唯一ID(不能与主库重复)
relay-log=mysql-relay-bin # 启用中继日志
read_only=1 # 可选:设为只读
重启MySQL:systemctl restart mysqld。
配置同步参数:
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001', # 主库记录的File
MASTER_LOG_POS=154; # 主库记录的Position
启动复制:START SLAVE;
验证复制状态:
SHOW SLAVE STATUS\G;
检查Slave_IO_Running和Slave_SQL_Running是否为Yes,无错误即成功。
修改配置文件(postgresql.conf):
wal_level=replica # 启用WAL日志
max_wal_senders=3 # 允许的WAL发送者数量
wal_keep_segments=64 # 保留的WAL日志段数量
listen_addresses='*' # 允许远程连接
编辑pg_hba.conf,添加从库IP访问权限:
host replication replicator 从库IP/32 md5
重启PostgreSQL:systemctl restart postgresql。
创建复制用户:
CREATE USER replicator REPLICATION LOGIN PASSWORD 'password';
修改配置文件(postgresql.conf):
hot_standby=on # 启用热备份
编辑recovery.conf(或postgresql.conf):
standby_mode='on'
primary_conninfo='host=主库IP port=5432 user=replicator password=password'
重启PostgreSQL。
验证复制状态:
在主库执行:
SELECT * FROM pg_stat_replication;
查看state是否为streaming,确认数据同步。
mysqldump(MySQL)或pg_dump(PostgreSQL)导出并导入到从库,确保初始数据一致。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。