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配置是否正确

posted @ 2022-04-12 11:35  七言八语  阅读(46)  评论(0)    收藏  举报