当前位置:   article > 正文

如何部署mysql高可用呢?本文带你学习_mysql 宝塔高可用部署

mysql 宝塔高可用部署

此文档旨在为业务系统,提供数据库mysql高可用方案,此方案在基于mysql双主模式下,采用keepalive漂移VIP地址的方式,实现高可用。

一、架构思路

1、在两台服务器上,分别搭建mysql数据库,这两台数据库都可读写,互为主从,下文统称mysql_Amysql_B

2、默认情况下,只使用一台数据库,即mysql_A,在这种情况下mysql_B处于闲置状态;

3、使用keepalive来实现mysql_Amysql_B的高可用;

4、keepalive使用非抢占模式,使其不会因为故障恢复后抢占VIP的情况。

缺点与不足:mysql_B可能长时间处于空闲状态,造成一部分的资源浪费。

二、mysql的安装

1、检查是否安装有mysql

[root@loaclhost ~]# rpm -qa | grep mysql
[root@loaclhost ~]#

  • 1
  • 2
  • 3

如果存在请使用如下命令进行卸载

[root@loaclhost ~]# yum remove mysql*

  • 1
  • 2

2、安装mysql软件

可查看历史文章

运维家,公众号:运维家centos7/linux编译安装mysql8最新版

三、mysql双主模式配置文件


mysql_A的配置文件参考

[root@loaclhost ~]# vim /etc/my.cnf

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
user=mysql
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
skip-external-locking
wait_timeout=86400
key_buffer_size = 2024M
max_allowed_packet = 32M
table_open_cache = 2048
sort_buffer_size = 8M
net_buffer_length = 64K
read_buffer_size = 8M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections=10000
slow-query-log=On
slow_query_log_file="/home/mysql/logs/localhost-slow.log"
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
skip-name-resolve
innodb_buffer_pool_size = 4096M
innodb_thread_concurrency = 4
log-bin=mysql-bin
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-port=3306
report-host=192.168.1.1
server_id = 1
log-slave-updates
slave-skip-errors=all
auto_increment_increment=2
auto_increment_offset=1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

输入 :wq 保存退出
[root@loaclhost ~]# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

mysql_B的配置文件参考

[root@loaclhost ~]# vim /etc/my.cnf

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
user=mysql
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
skip-external-locking
wait_timeout=86400
key_buffer_size = 2024M
max_allowed_packet = 32M
table_open_cache = 2048
sort_buffer_size = 8M
net_buffer_length = 64K
read_buffer_size = 8M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections=10000
slow-query-log=On
slow_query_log_file="/home/mysql/logs/localhost-slow.log"
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
skip-name-resolve
innodb_buffer_pool_size = 4096M
innodb_thread_concurrency = 4
log-bin=mysql-bin
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-port=3306
report-host=192.168.1.2
server_id = 2
log-slave-updates
slave-skip-errors=all
auto_increment_increment=2
auto_increment_offset=2

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

输入 :wq 保存退出
[root@loaclhost ~]# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

配置文件修改完毕,需要分别重启两台mysql数据库,建议root用户权限只限制本地登录。

四、mysql的双主模式调试

1、防火墙开通

采用telnet命令,检测两台mysql数据库是否互通,确保网络通信正常。

2、分别在mysql_A与mysql_B上新建用以同步数据的用户

grant replication slave on *.* to 'slave'@'192.168.1.1' identified by 'Jier@123456'; -- 在mysql_A上执行
grant replication slave on *.* to 'slave'@'192.168.1.2' identified by 'Jier@123456'; -- 在mysql_B上执行

  • 1
  • 2
  • 3

3、分别在mysql_A与mysql_B上执行如下命令,来查看binlog信息

show master status\G;

  • 1
  • 2

4、分别在mysql_A与mysql_B上执行如下命令,需根据实际情况进行更改相关参数

例如master_hostmaster_log_filemaster_log_pos等:

change master  to master_host='192.168.1.2',master_user='slave', master_password='Jier@123456',master_log_file='mysql-bin.000052',master_log_pos=500;  -- 此命令在master_A上执行,其中master_log_file与master_log_pos就是mysql_B上所查看到的信息,在mysql_B上执行的命令类似,但是信息是mysql_A上查看到的信息。

  • 1
  • 2

5、启动双主复制

 start slave; -- 分别在两台数据库里面执行此命令。

  • 1
  • 2

6、输入以下命令进行状态查看

show slave status\G;

  • 1
  • 2

如果看到查出的其中两个信息如下所示,即表示mysql双主模式搭建成功。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

  • 1
  • 2
  • 3

五、keepalieve搭建-非抢占模式

1、安装keepalive

此步骤略(只需要安装好keepalive版本即可,无需进行任何配置修改)。

2、部署检测脚本

放置mysql状态检测脚本,命名为check_mysql.sh,脚本内容如下

图片
剩余内容请转至VX公众号 “运维家” ,回复 “162” 查看。

------ 以下内容为防伪内容,忽略即可 ------
------ 以下内容为防伪内容,忽略即可 ------
------ 以下内容为防伪内容,忽略即可 ------

linuxmpi安装,linux的特点是什么,linux定位段错误的是,linux流量攻击,linuxreadv,linux停止ftp服务,centos和linux是一个操作系统吗,linuxqt32,linux建立递归目录树,gpsrtk使用linux,linuxjad,linux服务器启动方法,linux嵌入式tcp协议栈,psqllinux登录,linux下载tar的包,linux的文件挂载方式,linux给用户sudo全息,linux创建pv,linux安装pycham,linux服务器加网卡。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号