一、mysql5.7主从复制
主从复制的要求:
(1)主库开启binlog日志(设置log-bin参数)
(2)主从server-id不同
(3)从库服务器能连同主库
主从复制原理:
mysql的主从配置又叫replication,AB复制,基于binlog二进制日志,主数据库必须开启binlog二进制日志才能进行复制。
(1)主数据库将更改操作记录到binlog二进制日志(主数据库有log dump线程和从数据库的i/o线程传递binlog)。
(2)从库生成两个线程,一个i/o线程,一个SQL线程
(3)i/o线程去请求主库的binlog,并且得到的binlog日志写到relay log(中继日志)文件中
(4)然后主库会生成一个log dump线程,用来给从库的i/o线程传binlog;SQL线程,会读取中继日志文件,并解析成具体的操作执行,这样主从的操作就一致了,而最终的数据也就一致了。
作为异步复制,其主库将事件写入binlog二进制文件,dump线程将binlog文件发送出去,不保证其他从节点是否会收到binlog二进制文件。
1.在主库中安装mysql
[root@server3 ~]# ls
mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
[root@server3 ~]# yum install *
2.打开数据库
[root@server3 ~]# systemctl start mysqld
3.查看密码
[root@server3 ~]# cat /var/log/mysqld.log | grep password
4.进行初始化,修改密码否则进入数据库也无法操作
注意:密码需要有数字 大小写字母 特殊字符 三者构成 缺一不可! 密码位数大于8
[root@server3 ~]# mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root: ##刚才找出的密码
The existing password for the user account root has expired. Please set a new password. ##设置新的密码
New password:
Re-enter new password:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) :
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
5.编辑配置文件
[root@server3 ~]# vim /etc/my.cnf
最后面添加:
29 log-bin=mysql-bin ##开启二进制日志
30 server-id=1 服务器ID
6.重启服务,则配置文件生效
[root@server3 ~]# systemctl restart mysqld
7.创建用户并授权
参数解释:
replication 表示授权复制的权限
. 表示所有数据库可以进行同步
Hui 表示授权名,可以随意填写
‘172.25.19.%’ 表示授权172.25.19.0/24的网段所有服务器可以同步, %表示任意