离线安装Mysql5.7.28及调优


声明:这是我在大学毕业后进入第一家互联网工作学习的内容


环境准备

  • 操作系统centos7.6
  • 机器性能32C 64G 外挂2TSSD到/data目录(数据库建议外挂磁盘)
  • mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
  • 下载链接
  • https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
  • 百度网盘链接
  • https://pan.baidu.com/s/1cadkpE_lDtaStWxUv17-QQ 提取码 54rl

安装步骤

解压

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> mkdir -vp /data/mysql/mysql3306/{data,logs,tmp}
shell> mkdir -vp /opt/mysql
shell> cd /opt/mysql/
shell> tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
shell> cd /usr/local
shell> ln -s /opt/mysql/mysql-5.7.28-linux-glibc2.12-x86_64  mysql

优化配置文件

里面的参数都是在适用于本文环境准备机器配置的基础上调优后的结果,如果你想安装Mysql的机器配置与于本文环境准备机器配置相差很大请不要盲目复制,请看下面3大配置项内容里具体参数的讲解,太长不看可以直接看总结的配置文件。

客户端默认设置内容

  • socket 可以根据实际磁盘挂载的目录进行调整
[client]   #客户端默认设置内容

user=root
password=123456
port    = 3306
socket = /data/mysql/mysql3306/data/mysql.sock 
#避免MySQL的外部锁定,减少出错几率增强稳定性。

使用mysql命令登录mysql数据库时的默认设置

[mysql]  #代表我们使用mysql命令登录mysql数据库时的默认设置

#参数对于做运维的人来说很重要。我们登入mysql数据库后,mysql的提示符只是一个很简单内容 mysql>,没有其他任何信息。通过--prompt=name可以自定义提示信息,通过配置显示登入的主机地址,登陆用户名,当前时间,当前数据库schema等待。个人强烈要求加上登入主机名,登陆用户名,当前库这三项加入提示内容。
prompt="\u@dev-data-01 \R:\m:\s [\d]> " 
#自动补全的意思,就像我们在linux命令行里输入命令的时候,使用tab键的功能是一样的
no-auto-rehash 
#utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集。
default-character-set=utf8mb4  

数据库自身的默认设置

数据库自身配置分为4项

  • basic settings

  • log settings

  • replication settings

  • innodb settings

basic settings
  • datadir 可以根据实际磁盘挂载的目录进行调整

  • socket 可以根据实际磁盘挂载的目录进行调整

  • secure_file_priv 可以根据实际磁盘挂载的目录进行调整

  • skip_name_resolve 如果你的mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢,是因为开发的机器是不能够连接外网的,所以DNS解析是不可能完成的,这时就需要禁用

  • external-locking 如果是单机部署需要禁用

[mysqld]  #代表数据库自身的默认设置
########basic settings########
user    = mysql
port    = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
socket  = /data/mysql/mysql3306/mysql.sock
#参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的,不配置不能用这个命令导出文件。
secure_file_priv=/data/mysql
#该变量的值是ON或 OFF指示是否启用了性能模式。
performance_schema = 1
#服务器安装时指定的默认字符集设定。
character_set_server=utf8mb4   
#操作系统允许mysqld打开的文件数量。
open_files_limit = 655350  
#事务隔离级别为READ COMMITTED。
transaction_isolation = READ-COMMITTED
#针对交互式连接服务器关闭连接前等待活动的秒数,例如mysql客户端连接数据库。
interactive_timeout = 31536000
#针对非交互式连接服务器关闭连接前等待活动的秒数,例如通过jdbc连接数据库。
wait_timeout = 31536000
#客户端连接是否解析主机名。0,mysqld在检查客户端连接时解析主机名;1,mysqld仅使用IP编号。
skip_name_resolve = 1  
#说明是否数据目录所在的文件系统对文件名的大小写敏感。1说明对文件名的大小写不敏感。
lower_case_table_names=1    
#在MySQL暂时停止回答新请求之前的短时间内可以堆叠多少个请求。仅当您期望在短时间内有大量连接时,才需要增加此数量。
back_log = 1024
#指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提示,则需要增大该参数值。
max_connections = 10240    
#如果MySQL服务器连续接收到来自同一主机的请求且都被拒绝,次数超过max_connect_errors的设定值时,MySQL服务器就会阻止这台主机后续的所有请求。
max_connect_errors = 1000000
#表文件描述符的缓存大小。
table_open_cache = 20480
#可以存储在定义高速缓存中的表定义(来自文件)的数量 。
table_definition_cache = 20480
#打开表缓存实例的数量。
table_open_cache_instances = 64
#每个线程的堆栈大小。
thread_stack = 512K
#跳过外部锁定。如果是单服务器环境,则将其禁用即可,如果是多服务器环境,则注释掉这一行即可。
external-locking = FALSE
#限制server接受的数据包大小。
max_allowed_packet = 32M
#每个必须执行排序的会话都会分配此大小的缓冲区。
sort_buffer_size = 4M
#用于普通索引扫描,范围索引扫描和不使用索引的联接的缓冲区的最小大小,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值