mysql的主从复制
一. 在两台机器上分别安装mysql(安装步骤可自行百度)
其中一台mysql作为主数据库,另外一台作为从数据库
安装完成后找到配置文件(Linux下是my.cnf,Windows下是my.ini)
主数据库配置
在配置以前记得给主服务器授权一个可远程登录的user
授权语句
GRANT ALL PRIVILEGES ON shandong.* TO 'user_01'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
#===========================配置主从同步 begin==============================
server-id=27
log-bin=mysql-bin
#relay_log= mysql-relay-bin
#log_slave_updates = 1
binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
binlog-ignore-db=mysql //要忽略的数据库
#===========================配置主从同步 end==============================
保存后重启数据库
查看主数据库参数,执行sql
show MASTER STATUS
从服务器配置
修改配置文件,新增如下内容
#=================================mysql主从配置 begin====================================
log_bin = mysql-bin
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
#=================================mysql主从配置 end====================================
保存后重启
然后从数据库配置连接到主数据库(用刚才授权的用户连接)
在mysql中运行sql语句:
CHANGE MASTER TO MASTER_HOST='192.168.1.111', MASTER_USER='user_01',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;
MASTER_HOST: 主数据库连接的ip
MASTER_USER: 连接使用的账户
MASTER_PASSWORD: 用户连接的密码
运行后查看
SHOW SLAVE STATUS
注意以下两个字段
Slave_IO_Running
Slave_SQL_Running 这时候他俩都是No
然后执行如下sql启动奴隶线程
START SLAVE;
执行成功后再查看 SHOW SLAVE STATUS
Slave_IO_Running
Slave_SQL_Running 这时候他俩都是Yes
在主数据库上执行一个新建数据库的语句,执行成功后,在从服务器上查询该数据库,如果能查找到,表示配置成功
这样配置的结果是当主服务器发生变化时,从服务器也会变化,但是从服务器变化时,主服务器不会改变
如果想要主数据库改变某个数据库时,对应的数据库发生改变。主数据库的其他数据库发生改变,从数据库不改变
那就需要接下来的配置了
主数据库配置加上如下语句
binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
binlog-ignore-db=mysql //要忽略的数据库
从数据库加上如下配置
replicate-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
replicate-ignore-db=mysql //要忽略的数据库