MySQL主从(基本功能实现)

1.环境准备

1.1环境说明

在saster上面已经有一个数据库,要求搭建一主双从环境,将saster已有的数据库备份至从服务器,且实现主从复制
saster IP地址为192.168.100.235,已有customer库
slave1的IP地址为192.168.100.60,全新服务器,无MySQL
slave2的IP地址为192.168.100.70,全新服务器,无MySQL
从节点采用二进制安装MySQL

2.搭建NTP服务器

2.1安装NTP

[root@mysql_server_master ~]## yum -y install ntp

2.2配置NTP

[root@mysql_server_master ~]# vim /etc/ntp.conf
restrict 127.127.1.0
restrict 127.127.1.0 stratum 8

2.3启动时间服务

[root@mysql_server_master ~]# systemctl start ntpd

2.4在从节点运行时间同步

slave1同步:

[root@mysql_server_slave1 ~]# yum -y install ntpdate
[root@mysql_server_slave1 ~]# ntpdate 192.168.100.235

在这里插入图片描述

slave2同步

[root@mysql_server_slave2 ~]# yum -y install ntpdate
[root@mysql_server_slave2 ~]# ntpdate 192.168.100.235

在这里插入图片描述

3.软件安装

3.1slave1

	获取二进制包
		[root@mysql_server_slave1 ~]# cd /usr/local/src
		[root@mysql_server_slave1src]#wget  https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-  el7-x86_64.tar.gz
	解压缩
	[root@mysql_server_slave1 src]# tar -zxvf mysql-5.7.30-  el7-x86_64.tar.gz  -C /usr/local
	初始化前准备
			创建mysql程序用户
				[root@mysql_server_slave1 ~]# adduser -M -s /sbin/nologin mysql
			创建MySQL数据文件目录
				[root@mysql_server_slave1 ~]# mkdir -p /data/mysql/data/ 
			为MySQL相关目录授权
				[root@mysql_server_slave1 ~]# chown -R mysql:mysql /usr/local/mysql/
				[root@mysql_server_slave1 ~]# chown -R mysql:mysql /mysql/data/
			建立MySQL配置文件(复制Master配置文件,修改server-id)
				[root@mysql_server_slave1 ~]# scp root@192.168.100.235:/etc/my.cnf /etc/my.cnf
				注:必须修改server-id
	生成MySQL启动脚本
			#设置环境变量
					[root@local support-files]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
					[root@local support-files]# source /etc/profile
					[root@local support-files]# tail -1 /etc/profile
					export PATH=/usr/local/mysql/bin:$PATH
			
			 #生成启动脚本
				[root@local ~]# cd /usr/local/mysql/support-files/
				[root@local support-files]# ls
				magic  mysqld_multi.server  mysql-log-rotate  mysql.server
				[root@local support-files]# cp mysql.server /etc/init.d/mysqld
	初始化数据库			
				[root@mysql_server_slave1 ~]#/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

 

注:对/data/mysql/data应该保持为空,且属主与属组均为mysql

修改数据库密码

登录MySQL(没有密码登录)
			[root@local ~]# mysql -uroot -p
			Enter password: 

查看版本
			mysql> select version();
			+-----------+
			| version() |
			+-----------+
			| 5.7.30    |
			+-----------+
		1 row in set (0.00 sec)
设置密码
			mysql> update mysql.user set authentication_string=password('123') where user='root';
			Query OK, 1 row affected, 1 warning (0.01 sec)
			Rows matched: 1  Changed: 1  Warnings: 1
			mysql> flush privileges;
			Query OK, 0 rows affected (0.01 sec
	 


 

3.2slave 2

在slave2上保持和slave1同步操作即可

4.配置MySQL的master

4.1 登录主服务器

在这里插入图片描述

4.2 为从服务器授权

mysql>  GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.100.%' IDENTIFIED BY'123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000009 |    19568 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

FIle列为文件名,Position列显示偏移量

 

在这里插入图片描述
注:文件名和偏移量在配置从服务器时需使用,且保持一致

5.对从库同步主库已有数据文件

5.1对custumer库做增量备份

[root@mysql_server_master data]# mysqldump -uroot -p -B custumer > /root/custumer.sql

5.2 在slave1复现master数据

在slave1将主库对custumer的全量备份文件拉取到本地数据库的数据文件目录下

[root@mysql_server_slave1 ~]# cd /data/mysql/data/
[root@mysql_server_slave1 data]# scp root@192.168.100.235:/root/custumer.sql /data/mysql/data/
root@192.168.100.235's password: 

custumer.sql                                               100% 2584     2.1MB/s   00:00  

 

在这里插入图片描述

将custumer恢复到本地数据库

登录MySQL,使用source恢复

在这里插入图片描述

恢复验证

在这里插入图片描述

在这里插入图片描述

5.3 在slave2复现master数据

对于slave2保持和slave1同步操作即可

6.在从服务器启动同步

6.1slave1

mysql>change master to master_host='192.168.100.235',master_user='slave',master_password='123',master_log_file='mysql-bin.000009',master_log_pos=19568;

mysql>start slave;

 

6.2 slave2

对slave2保持6.1中操作即可

7.验证主从同步效果

7.1在主服务器为client插入一条数据

在这里插入图片描述

7.2slave1进行验证

7.3slave2进行验证

在这里插入图片描述

展开阅读全文
©️2020 CSDN 皮肤主题: 游动-白 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值