mysql5.7优化配置
概述今天主要分享一下关于mysql数据库在配置上的15条建议,仅供参考。Mysql 配置优化建议1、使用 innodb_flush_method=O_DIRECT 来避免写的时候出现双缓冲区。2、避免...
2024.11.13目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭建一个属于mysql数据库的高可用负载均衡。
主要思路:简单说,实现mysql主备复制-->利用mycat实现负载均衡。
比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定。
以下基于centos7操作系统进行演示。
架构图以下是这次搭建的架构图。
主机1与主机2上的keepalived会为该服务器抢占vip,抢占到vip后,对该主机的访问可以通过原来的ip访问,也可以直接通过vip访问,当其中一台宕机时,vip会漂移到另一台机器上,当我们访问VIP时haproxy会根据配置将请求分发到两台Mycat上实现负载均衡,并且haproxy会检测mycat是否存活。
下面先介绍下后端数据库的搭建部分。
一、安装部署mysql1、安装依赖
yum install tcl gcc perl perl-JSON.noarch perl-Time-HiRes.x86_64 -y2、创建基础目录并修改文件夹的属组
mkdir -p /data/datafilemkdir -p /data/logchown -R mysql:mysql /data3、安装mysql数据库,采用rpm安装方式
3.1卸载自带包
sudo yum remove -y mariadb*3.2、安装rpm
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-devel-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-embedded-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-embedded-devel-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-test-5.7.26-1.el7.x86_64.rpm4、mysql数据库配置
4.1、修改数据库my.cnf参数(注意server-id参数)
# vi /etc/my.cnf[mysqld]datadir=/data/datafilesocket=/var/lib/mysql/mysql.socklog-error=/data/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter_set_server=utf8bind-address = 0.0.0.0lower_case_table_names=1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONsymbolic-links=0max_connections=900max_allowed_packet=500M#二进制配置server-id = 1log-bin = /data/log/mysql-bin.loglog-bin-index =/data/log/binlog.indexlog_bin_trust_function_creators=1expire_logs_days=74.2、重启数据库初始化数据
service mysqld restart
4.3、修改数据库密码
4.3.1、查看数据库默认密码
#cat /data/log/mysqld.log|grep password4.3.2、更改密码
#mysql -u root -pset global validate_password_policy=0;SET PASSWORD = PASSWORD(‘xxxxx‘);4.3.3、创建数据库和用户
create schema tms_prod default character set utf8;set global validate_password_policy=0;grant ALL PRIVILEGES ON *.* TO tms_prod@‘%‘ identified by ‘xxx‘;4.3.4、重启mysql数据库
service mysqld restart二、配置mysql主从原理:
1、主库授权同步帐号
在主服务器上,设置一个从数据库的账户,使用REPLICATION SLAVE赋予权限,如:
set global validate_password_policy=0;grant REPLICATION SLAVE ON *.* TO ‘repl‘@‘%‘ IDENTIFIED BY ‘fxxx‘;2、修改主数据库的配置文件my.cnf
开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务。
#vi /etc/my.cnf-----------------------------------------配置文件-----------------------------------------#server-id表示在整个Mysql集群中保证唯一[mysqld]datadir=/data/datafilesocket=/var/lib/mysql/mysql.socklog-error=/data/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter_set_server=utf8bind-address = 0.0.0.0lower_case_table_names=1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONsymbolic-links=0max_connections=900max_allowed_packet=500M#二进制配置server-id = 1log-bin = /data/log/mysql-bin.loglog-bin-index =/data/log/binlog.indexlog_bin_trust_function_creators=1expire_logs_days=7-----------------------------------------配置文件-----------------------------------------3、查看主服务器状态
可以查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复
mysql> show master status \G;4、从服务器mysql配置
修改配置后需重启数据库服务器
#vi /etc/my.cnf---------------------------------------配置文件-------------------------------------------[mysqld]datadir=/data/datafilesocket=/var/lib/mysql/mysql.socklog-error=/data/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter_set_server=utf8bind-address = 0.0.0.0lower_case_table_names=1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONsymbolic-links=0max_connections=900max_allowed_packet=500M#从数据库二进制配置server-id = 2log-bin = /data/log/mysql-bin.loglog-bin-index =/data/log/binlog.indexlog_bin_trust_function_creators=1expire_logs_days=7----------------------------------------配置文件------------------------------------------5、从库开启同步
5.1 从库配置同步
配置mysql主从复制时,在从机上需要进行CHANGE MASTER TO操作,以确定需要同步的主机IP,用户名,密码,binlog文件,binlog位置等信息。
change master to配置和改变slave服务器用于连接master服务器的参数,以便slave服务器读取master服务器的binlog及slave服务器的relay log。同时也更新master info及relay log info信息库。执行该语句前如果从机上slave io及sql线程已经启动,需要先停止(执行stop slave)。
change master toMASTER_HOST=‘xx.xx.xx‘,MASTER_USER=‘repl‘,MASTER_PASSWORD=‘xxxx‘,MASTER_LOG_FILE=‘mysql-bin.000003‘,MASTER_LOG_POS=437;5.2、开启主从同步
开启后注意查看从库状态,
当Slave_IO_Running和Slave_SQL_Running都为YES的时候表示主从同步设置成功。
mysql> start slave;mysql> show slave status \G篇幅有限,这块就先介绍到这了,后面开始介绍搭建mycat的部分,感兴趣的朋友可以关注下~
概述今天主要分享一下关于mysql数据库在配置上的15条建议,仅供参考。Mysql 配置优化建议1、使用 innodb_flush_method=O_DIRECT 来避免写的时候出现双缓冲区。2、避免...
2024.11.13文章目录前言1. 设置数据库的配置文件库1:库22. 进入数据库创建从账号库1:库2:3. 查看生成的binlog日志,记录下来日志名字和起始位置。库1:库2:4. 进入数据库进行从读设置,指定要读的...
2024.11.15将一个数据表行列转置,有几种方法?有很多,不过今天我只介绍其中最常用的 3 种。案例:将下图 1 中的 B 列行列转置,效果如下图 2 所示。解决方案 1:复制粘贴1. 选中 B1:B6 区域 -->...
2024.11.12概述目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭建...
2024.11.13原文链接:https://mikechen.cc/14875.html为什么需要负载均衡当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展,使用集群和负载均衡提高整个系统的...
2024.11.15