一、在vmware上创建两台linux主机,并安装mysql
master主机ip:192.168.131.111
slave主机ip:192.168.131.112
二、备份master上的数据并slave上还原数据(master没有数据的省略这一步)
master使用mysqldump备份数据
mysqldump -u root -p --all-databases --lock-all-tables > /tmp/master_db.sql
说明:
-u :用户名
-p :示密码
--all-databases :导出所有数据库
--lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改
/tmp/master_db.sql :导出的备份数据(sql文件)位置,自己指定
slave上还原数据
还原使用mysqldump命令备份的数据库的语法如下:
mysql -u root -p < /tmp/master_db.sql
三、修改master主数据库配置(vim /etc/my.cnf)
数据库ID号,主数据库id号配置1,从数据库id从2开始;id不能重复
server-id=1
启用二进制日志
log-bin=mysql-bin
sync-binlog=1
需要同步的数据库名,这里以skynet数据库为例
binlog-do-db=skynet
四、在主节点上创建用于复制操作的用户
在主节点创建用户(这里用skynet),用于从节点连接主节点。
命令前面的skynet为用户名,后面skynet为用户密码,这里我用户名跟密码写一样,方便记忆
这里ip为从节点的ip
mysql> CREATE USER 'skynet'@'192.168.131.112' IDENTIFIED WITH mysql_native_password BY 'skynet';
为skynet用户授权
mysql> GRANT REPLICATION SLAVE ON *.* TO 'skynet'@'192.168.131.112';
刷新授权
mysql> flush privileges;
五、获取主节点当前binary log文件名和位置(position),用于配置从节点同步数据起始位置
mysql> SHOW MASTER STATUS;
到这里为止;主节点master已经配置完了。接下来配置从节点slave
六、修改从节点(slave)配置
数据库ID号,从数据库id从2开始;id不能重复
server-id=2
启用二进制日志
log-bin=mysql-bin
在从(slave)节点上设置主节点参数
mysql> change master to master_host='192.168.131.111',master_user='skynet',master_password='skynet',master_log_file='binlog.000060',master_log_pos=1327;
注意:MYSQL版本从5.1.7以后开始就不支持“master-host”类似的参数在配置文件配置,所以在从库上执行以上命令;
七、开启主从同步
1、开启同步
mysql> start slave;
2、查看主从同步状态
mysql> show slave status\G;
Slave_IO_Running和Slave_SQL_Running线程为yes说明从节点配置成功