MySQL主从复制是一种数据库复制技术,它允许一个MySQL数据库(主库)的数据被复制到一个或多个其他MySQL数据库(从库)。从库默认是只读的,这意味着在从库上执行的写操作(如INSERT、UPDATE、DELETE)会被拒绝。
MySQL主从复制主要有以下几种类型:
从库默认是只读的,主要是为了防止从库上的数据被意外修改,从而保证数据的一致性。如果从库允许写操作,可能会导致主从数据不一致的问题。
如果确实需要在从库上执行写操作,可以通过以下几种方式解决:
read_only
参数设置为0
,使从库变为可写。但这种方式会带来数据一致性的风险,不推荐在生产环境中使用。以下是一个简单的MySQL主从复制配置示例:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydatabase
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mydatabase
read_only = 1
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;
领取专属 10元无门槛券
手把手带您无忧上云