VMware Workstation Pro创建两个Linux(CentOS7)虚拟机,并通过XShell操控两台虚拟机并配置好Mysql,接着做Mysql主从复制操作
主服务器(master):192.168.30.100
从服务器(slave):192.186.30.102
准备工作
主服务器的Mysql环境中,创建需要的Database和table
show databases;
create database master_slave_copy;
use master_slave_copy;
create table master_tab(id int auto_increment primary key,name varchar(10));
select * from master_tab;
#Empty Set
从服务器的Mysql环境中,创建需要的Database和table
create database master_slave_copy;
use master_slave_copy;
create table master_tab(id int auto_increment primary key,name varchar(10));
select * from master_tab;
#Empty Set
正式操作:
1.Master虚拟机通过mysql -uroot -padmin进入mysql环境;接着在Mysql环境下输入:grant replication slave on *.* to 'mingzheli'@'%'identified by 'admin';
含义为建立一个帐户mingzheli,并且允许从所有的IP地址即%登陆,密码是admin。
接着输入:FLUSH PRIVILEGES; 刷新系统权限表的配置
2. Slave 虚拟机环境下输入:mysql -h192.168.30.100 -umingzheli -padmin测试能否登陆mysql成功
3. Master虚拟机环境下输入vi /etc/my.cnf,新增下述四行设置,黏贴在mysqld下
server-id = 1 //server—id 主服务器A的ID值
log-bin = mysql-bin // 开启binlog,后续查询二进制文件是否打开,On即为打开,可在mysql环境中输入:show variables like '%log_bin%';
binlog-do-db = master_slave_copy //需要同步的数据库,如果不配置则同步全部数据库
binlog-ignore-db = information_schema,mysql,performance_schema//无需开启二进制日志文件的数据库,多个数据库则要重复设置
4. 配置完成后,输入service mysqld start重启mysql服务
5. Master Mysql环境中上读锁,flush tables with read lock;
6. Master Mysql环境中输入show master status\G 当前binlog日志的信息,记住前两行File和Position的内容
7. Master Mysql环境中输入unlock tables解锁
8. Slave虚拟机环境下输入vi /etc/my.cnf,新增下述四行设置,黏贴在mysqld下
[mysqld]
server-id = 2 //区别于Master的server—id,不能重复
log-bin = mysql-bin
replicate-do-db = master_slave_copy //需要复制的数据库名
replicate-ignore-db = information_schema,mysql,performance_schema//不需要复制的数据库名
9.配置完成后,输入service mysqld start重启mysql服务
10.Slave虚拟机环境输入:mysql -uroot -padmin登陆mysql
11. Slave Mysql环境输入stop slave;接着
输入:
change master to
master_host='192.168.30.100',
master_user='mingzheli',
master_password='admin',
master_log_file='mysql-bin.000001',
master_log_pos=404;
解释:
change master to
master_host='192.168.30.100', //主机IP
master_user='mingzheli', //之前创建的用户账号
master_password='admin', //之前创建的用户密码
master_log_file='mysql-bin.000001', //master主机的binlog日志名称
master_log_pos=404; //binlog日志偏移量
10. Slave Mylsql环境输入Start slave
11. Slave Mysql环境输入show slave status\G //此处注意不要加;否则会出现Error:No query specified报错
Slave_IO_Running 和 Slave——SQL_Running均显示Yes即为成功
后续可自行增删改查Master的table数据,用于检测Slave的table数据是否同步更新