centos7.9 与mysql 5.7.21主从复制配置案例
一、工具与资料
1、操作系统 CentOS Linux release 7.9.2009 (Core)
2、数据库安装包及版本
mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
3、虚拟机或服务器两台主地址192.168.1.11,从地址 192.168.1.12
二 、数据库安装及配置
1. 解压安装包
tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
2、安装数据库并解决依赖
1. 使用cd命令切换到mysql解压后的目录中
2、执行命令
1)yum install *.rpm安装数据库(安装前请卸载自数据库mariadb会 有冲突报错)
如执行上述命令报
使用rpm -ivh 逐个安装并解决依赖
3、安装完成后配置数据库
1、master配置/etc/my.cnf
<details>
<summary>点击查看配置信息</summary>
```
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/database/mysqldata #数据库存放数据的位置根据情况自定
socket=/database/mysql/mysql.sock #连接数据库使用的sock
server-id=1 #服务id号主的号应该比从的小
log-bin=/database/logs/master-bin #binlog目录
sync_binlog=1#设置同步状态
#skip-grant-tables 数据库密码不能登录时使用此选项设置新密码重新登录数据库
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
plugin-load-add=validate_password.so #进行数据库密码安全设置报错时使用此选项
validate-password=FORCE_PLUS_PERMANENT ##进行数据库密码安全设置报错时使用此选项
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/database/mysql/mysql.sock #客户端连接异常提示无mysql.sock使用此选项
```
</details>
2、启动数据库 systemctl start mysqld 通过
grep 'password' /var/log/mysqld.log 查看安装时生成的临时密码
[root@slave mysql]# grep 'password' /var/log/mysqld.log
2022-04-12T02:24:42.887532Z 1 [Note] A temporary password is generated for root@localhost: q61W.sgoIM;#
3、登录数据库 mysql -uroot -p 输入密码后登录
登录报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
在配置文件中mysqld下添加 skip_grant_tables
5、修改密码 并去掉配置文件中的skip_grant_tables
update user set authentication_string=password('1234') where user='root';
flush privileges;
6、创建用户并授权slave
grant relicaption slave on *.* to 'slave'@'192.168.1.12' identified by 'password';
2、查看master状态
show master status \G
2、配置slave
1、编辑/etc/my.cnf配置
[mysqld]
datadir=/data/mysqldata
socket=/data/mysql/mysql.sock
server-id=12
sync_binlog=1
read_only=ON
relay-log=/data/logs/slave-log
#skip_grant_tables
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/data/mysql/mysql.sock
2、重启数据库并登录数据库执行以下命令
CHANGE MASTER TO
MASTER_HOST='192.168.1.101',
MASTER_USER='slave',
MASTER_PASSWORD='1234';
3、查看slave状态
show slave status \G;
三,验证主存复制
1、主库新建数据库test
mysql> create database hello;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hello |
| mysql |
| mytest |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql>
2、去slave库验证是否同步创建数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hello |
| mysql |
| mytest |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
如有则说明主从复制配置成功,无则需要检查授权,账号信息,/etc/my.cnf配置是否正确

浙公网安备 33010602011771号