测试环境:mysql
2台腾讯云服务器。CentOS 7.2 64位,1G,lnmp。sql
PHP:5.6;Mysql:5.5数据库
两台干净的服务器安全
下面开始配置主服务器(master)服务器
1.修改配置: ide
log-bin = mysql-bin 要打开,也就是把前面的#去掉。也有些配置默认就是打开的。测试
其实主服务器的不须要怎么动,server-id = 1也行。IP尾号也行。rest
2.重启服务:由于个人环境是lnmp。因此个人重启命令能够是:service mysql start 或者 service mysqld start 或者 lnmp restart 三个选其一。总有一个适合你。code
3.进入mysql:server
而后给从服务器配置一个能够登陆的帐号:
命令:grant all on *.* to ‘帐号名’@’从服务器IP’ identified by ‘密码’ 。例如:grant all on *.* to 'root'@'192.168.203.20' identified by 'repl';
接着这个命令:show master status;
获得:
记住这两个值。等会有用。
而后能够查看一下当前的用户。命令:SELECT
user
,host,
password
FROM
mysql.
user;
看吧,是否是多了一个。
/***************************************/
如今开始配置从数据库
编辑从库的my.cnf文件
‘
只要这个值和主库的不同,就没有什么问题。
接下来。仍是重启服务。service mysql start 或者 service mysqld start 或者 lnmp restart 三个选其一。总有一个适合你。
而后给从数据库一点配置:
原本想写干净点 为了方便大家直接复制,后来想一想也没什么用,反正大家都是要改IP和帐号密码的。
接着。执行这个命令start slave;
最后:show slave status \G 这行命令
千万不要在后面跟;分号。
会影响结果的。
红框两个为yes 时候。表示成功~
/*******************************/
报错时候!!!!
1.若是MYSQL服务重启一直报错。那就是你的配置文件有问题。就是那个/etc/my.cnf的文件。
2.若是从服务器不能链接到主服务。首先判断。防火墙关了没。端口开了没。安全组定义了没。
若是防火墙:就百度防火墙开关的命令。
若是是端口:就是服务商那里把端口全开了。服务商知道把,就是若是你的服务器是阿里。就去阿里的控制台,若是的腾讯云。就去腾讯云的控制台。
若是是安全组:那就去服务商那里找一个‘安全组’-》'入站规则'。
3.你也能够测试一下是否可用链接主数据库:直接敲命令:mysql -h主服务器IP -u用户名 -p密码。若是能连同。证实防火墙和端口和安全组都没问题。
4. 最后有个坑爹的。在执行最后一个show slave status \G命令的时候。若是加了分号。就会有个报错。有时候还会影响到这两个的值
5.差很少就是这样了。若是还有其余问题。欢迎补充探讨
2017年10月22日23:20:07补充:
6.刚刚从新配的时候发现了一个错误。以为很重要:
在slave_IO_Running:connecting 的时候。能够先退出来。链接一下远程的数据库。看能不能连。mysql -h主服务器ip -u刚刚主服务器设置的帐号 -p密码
若是能连。通常来讲都是没问题的。
若是不能。那就在主服务器,关掉防火墙
(systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running))而后重启一下服务器。再去从服务器中。远程链接主服务器的数据库。一直到能链接上为止。
还有个注意点:主服务器操做完最后一步。就不要操做了。否则会影响到Pos值。从服务器能够清空一下bin-log文件:mysql > reset master;。