dump 丢弃,扔掉,倒掉,
drop 落下,降下
slave 奴隶,
insecure 不安全的,没保证的
interface 接口,界面,
command 命令
主从同步也就是数据备份和读写分离,
好处:备份,读写分离,负载均衡,
只需要四步:
主数据库设置:
1、备份主服务器的数据
在终端执行如下命令:(将来会在家目录下生产一个master_db.sql的数据库文件,即备份文件)
mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
2、编辑设置mysqld的配置文件,设置log_bin和server-id
在终端执行如下命令:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改完毕之后保存退出,并且把MySQL服务器进行重启,如下图:
3、登入主服务器Ubuntu中的mysql,创建用于从服务器同步数据使用的帐号:
终端输入如下指令连接MySQL:mysql –uroot –pmysql
创建一个从服务器可以连接主服务的账户操作:
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';
刷新操作:
FLUSH PRIVILEGES;
4、获取主服务器的二进制日志信息
在MySQL服务器上输入如下命令来获取二进制日志信息:SHOW MASTER STATUS;
从数据库设置:
- 把主服务器上导出的master_db.sql备份文件先同步到从服务器上,保证主从数据一致。
把master_db.sql先放到从库的服务器上(注意文件位置要和你打开终端的位置保持一致,比如都在桌面),然后执行如下命令:
mysql -uroot -pmysql < master_db.sql
此时从库服务器已经拥有跟主服务器一样的数据了,如下图所示:
- 修改从服务器的配置文件my.ini
加上对应的server-id,要保证不能跟主服务器的server-id一样
保持退出之后重启从服务器,如下图:
- 连接到从服务器,进行同步工作
输入如下指令:
change master to master_host='192.168.88.128', master_user='slave', master_password='slave',master_log_file='mysql-bin.000163', master_log_pos=589;
注意:需要修改的地方有3处,第一个ip地址改成自己主服务器的ip地址,第二个二进制文件要跟主服务器的一致,第三个是pos位置也要与主服务器一致。具体的值参见主服务器配置的第4步
- 开始同步
输入命令:start slave;
(如果需要停止同步的话,执行命令stop slave;)
- 查看同步状态
输入指令:show slave status \G;
当看到两个yes意味着同步成功。如果没有成功先检查一下主从是否可以ping通,如果主从可以正常通信的话,则从文档的“主服务器配置”的第4步开始把步骤再走一遍。
测试同步:
在主服务器创建一个新的数据库“test_slave”
create database test_slave charset=utf8;
此时进入到从服务器已经可以查看到效果:
恭喜!此致主从同步大功告成!!!
先给主服务器设置:
一个账户,给与备份的权限 ,
然后从服务器设置:
用这个账户登录,并写上主服务器ip和file-ip 和 position
(查看主服务器信息:show master status;)
查看从服务器是否连接成功: