为什么需要这个技术,主要目的是减轻主数据库服务器的负载。使用MySQL的主从复制功能轻松完成主从服务器的数据同步。只有主从服务器的数据能及时更新,为读取分离提供前提条件。
MySQL复制技术主要使用bin-log日志功能,主服务器的基本所有操作都会记录在bin-log日志中,从服务器只要执行主服务器的bin-log日志就能完成数据同步。
步骤:
1.主服务器数据库开一个供从服务器远程复制的账号,并在防火墙打开3306端口。
2.主服务器数据库MySQL开启bin-log功能,并配置唯一的uid。默认并没有开启。
3.从服务器配置主从复制配置,并验证。
1.主服务器数据库开一个供从服务器远程复制的账号,并在防火墙打开3306端口。
打开端口号:
firewall-cmd --query-port=3306/tcp
systemctl reload firewalld
设置test用户可以让从服务器(192.168.117.130)访问,密码为Aa123456!@#$
grant all privileges on *.* to 'test'@'192.168.117.130' identified by 'Aa123456!@#$';
一下语句查看用户是否配置争取
select user,host from mysql.user;
在从服务器中验证test用户是否能登录,输入密码等登录成功,说明用户登录成功
mysql –utest –p –h192.168.117.129
2.主服务器数据库MySQL开启bin-log功能,并配置唯一的uid。默认并没有开启。
如果找不到文件,可以使用find / -name my.cnf命令查找
在my.cnf配置文件中配置参数.server-id是跟从服务器不一样的,log-bin根据实际情况配置路径。
在[mysqld]下面加入
server-id=343243
log-bin=/var/lib/mysql/mysql-bin
重启mysqld服务
service mysqld restart
3.从服务器配置主从复制配置,并验证。
1).my.cnf文件中[mysqld]加入,这个值需要跟主服务器不一样
server-id = 343
service mysqld restart
2)使用命令进入mysql界面,然后配置。这里配置的信息为主服务器的信息,ip,用户名,密码,还有日志文件及位置。执行下面语句就完成配置。
备注:在主服务器的mysql中,输入命令,就可以知道MASTER_LOG_FILE和
MASTER_LOG_POS这两个值
SHOW MASTER STATUS \G;
3)启动Slave同步进程
start slave
执行show slave status\G;
就可以看到以下信息就代表配置成功,红框里面如果出现NO,代表未配置成功。
这个时候可以使用tail /var/log/mysqld.log 命令查看,具体错误是什么,一步步解决。
以上就已经完成了主从复制配置了。在主服务器中的改变,都会更新到从服务器中。
本文参考了https://www.cnblogs.com/gl-developer/p/6170423.html