mysql配置文件
主配置文件:/etc/mysql/my.cnf,内容如下:
在/etc/mysql/mysql.conf.d/mysqld.cnf有mysql的各项配置
在master机器上启用bin-log并设置server-id
修改/etc/mysql/mysql.conf.d/mysqld.cnf
修改后为:
重启master并查看server-id是否修改成功
service mysql restart
mysql -u root -h 127.0.0.1 -p
show variables like 'server_id';
在slave机器上启用bin-log并设置server-id
修改/etc/mysql/mysql.conf.d/mysqld.cnf
修改后为:
注意:salve机器上的server-id和master机器上的server-id不能相同
重启slave并查看server-id是否修改成功
service mysql restart
mysql -u root -h 127.0.0.1 -p
show variables like 'server_id';
在master上为slave设置同步bin-log的账号
CREATE USER 'admin'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'admin'@'%';
flush privileges;
*.*:所有的库和表
查看master的状态信息
show master status;
在slave上设置授权信息
change master to master_host='172.21.175.12',master_user='admin',master_password='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=821;
在slave上启动从服务器
start slave;
在slave上查看配置是否生效
show slave status\G;
Slave_IO_Running:该线程用于从master上拉取bin-log;
Slave_SQL_Running:该线程用于执行从master上录取的bin-log;
测试
在master上创建表并插入数据:
create database test;
use test;
create table test (id int,name varchar(20),age int);
insert into test values (1,"bob",20),(2,"alice",21);
在slave上查看是否有数据:
show databases;
use test;
show tables;
select * from test;
在master节点上查看bin-log
bing-log位于/var/log/mysql
mysqlbinlog -v --base64-output=decode-rows mysql-bin.000001