前言
以下所有内容均作为个人笔记,为操作流程和本人遇到的问题及解决方式。项目是黑马的瑞吉外卖。
作为一名初学者,非常欢迎各位业界前辈的指点。
主体内容
MySQL主从复制的原理
配置主库
1.配置主库Master
首先进入该配置文件(确保安装了vim)
vim /etc/my.cnf
进入编辑模式后写入下列配置,并且保存
log-bin=mysql-bin #启用二进制文件
server-id=100 #服务器唯一ID,不重复即可
2.重启MySQL服务
systemctl restart mysqld
3.登录Mysql数据库,执行下面SQL
登录MySQL
mysql -u用户名 -p密码
执行下列SQL语句
grant replication slave on *.* to '用户名'@'%' identified by '密码';
SQL代码解读:创建一个用户,设置密码,并且授予该用户 replication slave
的权限。常用于建立赋值时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户赋值。
4.记录结果中File和Position的值
show master status;
注意:这一步完成后主数据库不要执行任何操作。 切换到从数据库。
配置从库
5.配置从库slave
修改Mysql数据库的配置文件
vim /etc/my.cnf
server-id=101 #服务器唯一ID,不重复即可
同步骤2,重启mysql.
6.执行下列SQL
change master to master_host='主库ip地址',master_user='授权用户',master_password='授权密码',master_log_file='步骤4中file的值',master_log_pos=步骤4中Position的值;
注意需要将代码中的中文部分修改为自己的信息。
启动slave
start slave;
7.查看从数据库的状态
show slave status;
当显示为下列信息时候,则表示连接正确。
8.可能问题与解决
主服务器端口号未开放。使用下面代码查看对应端口是否开放
firewall-cmd --query-port=3306/tcp
如果显示为no,则需要先开启端口。
执行
firewall-cmd --add-port=3306/tcp
此时再次登录mysql并且show master status;
记录对应信息并且重新执行第六步。
如果报错可能是因为slave没有停止,需要先stop slave才能再次重新启动。
文末
此处的从数据库的虚拟机并非克隆而来。之前试过通过克隆虚拟机,在克隆虚拟机上创建从数据库。但是失败了,等有机会再试试。
非常感谢各位能看到此处。欢迎点赞收藏加关注。顺祝各位新年快乐!!!