说明:-u :用户名 -p :密码 --lock-all-tables :执行操做时锁住全部表,防止操做时有数据修改mysql
一、设置mysql配置文件[ 我使用的宝塔,因此直接在软件商店的mysql里边直接进行配置设置 ]sql
主服务器:【mysqld】:log-bin=mysql-bin log_slave_updates=1 skip-grant-tables【跳过验证权限】 server-id = 1数据库
从服务器:【mysqld】:log-bin=relay-bin server-id = 2 skip-grant-tables【跳过验证权限】服务器
注:必定要放行3306端口,不然链接不上!配置成功后,重启mysql服务;我是手动直接点击重启的!ide
二、登陆到主服务器的mysql;建立一个在从服务器上同步时使用的帐号;测试
建立帐户:create user '用户名'@'访问主机' identified by '密码';spa
赋予权限:grant 权限列表 on 数据库 to '用户名'@'访问主机' ;【GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';】日志
注:我已经在mysql里建立好了帐号和密码,因此直接利用第二句给建立的帐号赋予的权限;赋予权限时能够直接给从服务器root赋予权限,也能够给root下子帐号赋予权限;server
完成以后使用“FLUSH PRIVILEGES”进行刷新;blog
三、在主服务器终端获取二进制日志信息;
SHOW MASTER STATUS;
注:File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到
四、进入从服务器,进入到mysql,设置链接master主服务器
change master to master_host='主服务器IP', master_user='帐号', master_password='密码',master_log_file='mysql-bin.000008', master_log_pos=107;
五、开启同步,查看同步状态
六、测试主从同步
在主服务器mysql中建立一个数据库,
在从服务器中查看新建的数据库是否存在;
七、其余的坑:
查看复制帐户是否存在且是否赋予权限:mysql> show grants for 'usvr_replication'@'%';
+-----------------------------------------------------------------------------------------------------------------------------+
| Grants for usvr_replication@% |
+-----------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'usvr_replication'@'%' IDENTIFIED BY PASSWORD '*F4039654D0AFD80BB0A7775938EFD47ACB809529' |
+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
————————————————
从B使用该帐户链接至A mysql -uusvr_replication -h 192.168.83.35 -p -P55944
若是第一次尝试复制失败后,在进行第二次尝试时候必须中止第一次的连接stop slave;
上述方法在作的时候未进行从服务器权限配置,由于从服务器在配置完成后已经锁住,当你在从服务器中表中加入数据时候,主服务器数据并不会作出改动。