lnmp架构之搭建数据库(主从半同步GTID)

1. mysql5编译安装(企业中稳定)

1.1 mysql5.7下载安装并编译

mysql下载地址

- mysql8安装:
	# tar zxf mysql-boost-5.7.31.tar.gz
	# mkdir build
	# cd build
	# cmake3 ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
		-DMYSQL_DATADIR=/data/mysql \
		-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
		-DWITH_INNOBASE_STORAGE_ENGINE=1 \
		-DSYSCONFDIR=/etc \
		-DENABLED_LOCAL_INFILE=1 \
		-DWITH_EXTRA_CHARSETS=all \
		-DDEFAULT_CHARSET=utf8mb4 \
		-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
		-DWITH_BOOST=/root/mysql-5.7.31/boost/boost_1_59_0/		
	# make -j2 ##2表示使用俩个内核同时工作,但是虚拟机本身2G内存吃不消,直接make就好。
	# make install

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2 配置操作

- 拷贝启动脚本:
	# cd /usr/local/lnmp/mysql/support-files/
	# cp mysql.server /etc/init.d/mysqld
- 新建用户:
	# useradd -M -d /usr/local/lnmp/mysql/ -s /sbin/nologin mysql
- 创建数据目录:
	# mkdir -p /data/mysql
	# chown mysql.mysql /data/mysql
- 添加变量:
	# vim ~/.bash_profile 
	PATH=$PATH:$HOME/bin:/usr/local/lnmp/php/bin:/usr/local/lnmp/mysql/bin
	# source ~/.bash_profile 
- 修改配置:
	# vim /etc/my.cnf
	[mysqld]
	basedir=/usr/local/lnmp/mysql
	datadir=/data/mysql
	socket=/data/mysql/mysql.sock
- 初始化数据库:
	# mysqld --initialize --user=mysql
- 修改mysql管理员密码(添加了安全插件的操作):
	#  vim /etc/my.cnf
	skip-grant-tables		//添加参数
	# /etc/init.d/mysqld restart
	# mysql -p
	mysql> update mysql.user set authentication_string='' where user='root';
	# vim /etc/my.cnf
	#skip-grant-tables	//注释或删除参数
	# /etc/init.d/mysqld restart
	# mysql -p
	mysql> alter user root@localhost identified by 'Westos+007';
	mysql> flush privileges;

出现Segmentation fault问题参考下面网址

解决方法

拷贝启动脚本
在这里插入图片描述
新建用户

在这里插入图片描述
创建数据目录
在这里插入图片描述

添加变量

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

修改配置
在这里插入图片描述

在这里插入图片描述

初始化数据库
在这里插入图片描述
修改mysql管理员密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 图形化数据库的设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 数据库的主从复制

2.1 配置从属数据库server2

server2和server1上的初始化配置是一样的
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
初始化从属数据库server2

在这里插入图片描述
在这里插入图片描述
主从复制的前期环境到此结束!!!!

2.2 主从复制

- master设置server-id:
	SET GLOBAL server_id = 1;	      	//在线生效,mysql8默认id为1
	[mysqld]				//保存到my.cnf文件
	    server-id=1
	
- master创建复制用户:
	CREATE USER 'repl'@'172.25.0.%' IDENTIFIED BY 'Westos+007';
	GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.25.0.%';
	默认使用caching_sha2_password
	
	
- 如果需要使用mysql_native_password插件,使用以下命令:
	create user westos@localhost identified with mysql_native_password by 'Westos+007';
   或直接写入my.cnf:
	default_authentication_plugin=mysql_native_password


- slave配置server-id:
	SET GLOBAL server_id = 2;	  
	[mysqld]				
	 server-id=2
- slave配置复制:
	CHANGE MASTER TO
	    ->     MASTER_HOST='172.25.0.11',
	    ->     MASTER_USER='repl',
	    ->     MASTER_PASSWORD='Westos+007',
	    ->     MASTER_LOG_FILE='binlog.000001',
	    ->     MASTER_LOG_POS=708,
	    ->     GET_MASTER_PUBLIC_KEY=1;
	//在不使用安全连接并且用户帐户已使用caching_sha2_password插件进行身份验证(MySQL 8.0的默认设置),则必须指定 MASTER_PUBLIC_KEY_PATH或 GET_MASTER_PUBLIC_KEY选项在该 CHANGE MASTER TO语句中启用基于RSA密钥对的密码交换。

master设置(server1)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从属机的配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试主从复制是否成功(主数据库添加数据,观察从属数据库是否发生变化)

主数据库内容
在这里插入图片描述

在这里插入图片描述
从属数据库内容

在这里插入图片描述

2.3 mysql服务之GTID复制

- GTID复制:
	# vim /etc/my.cnf
	[mysqld]
	gtid_mode=ON
	enforce-gtid-consistency=ON
	
	- slave配置:
		CHANGE MASTER TO
		     >     MASTER_HOST = host,
		     >     MASTER_PORT = port,
		     >     MASTER_USER = user,
		     >     MASTER_PASSWORD = password,
		     >     MASTER_AUTO_POSITION = 1;

server1上配置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

server2上配置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改主数据库内容,观察server2数据库gtid的变化

在这里插入图片描述
在这里插入图片描述

2.4 mysql服务之半同步复制

- 半同步复制:
	master:
	INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
	SET GLOBAL rpl_semi_sync_master_enabled =1;
	show status like 'Rpl_semi%';
	slave:
	INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
	SET GLOBAL rpl_semi_sync_slave_enabled = 1;
	STOP SLAVE IO_THREAD;
	START SLAVE IO_THREAD;

master配置

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

slave配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

俩个数据库结合进行实验
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Studying!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值