目录
MySQL 服务器
1.服务器⽀持的启动选项。可以在命令⾏和配置⽂件中指定这些选项 [mysqld]2.服务器系统变量。反映了启动选项的当前状态和值,其中⼀些系统变量可以在服务器运⾏时修改3.服务器状态变量。这些变量包含了有关运⾏时操作的计数器和统计信息(状态变量不能被修改,它只代表当前的状态,是一个指示器)如连接服务器的客户端数量等是不能被修改的4.服务器如何管理客⼾端连接5.配置和使⽤时区⽀持6.服务器端帮助功能
服务器配置和默认值
mysqld 有很多选项和系统变量可以在启动时进⾏配置
1.查看所有mysqld 选项和可配置的系统变量列表及默认值的命令:mysqld --verbose --help
2.查看服务器在运⾏时系统变量的值,在MySQL客户端中执⾏命令: SHOW VARIABLES;
3.查看服务器在运⾏时的⼀些统计和状态指⽰器,在MySQL客户端中执⾏:SHOW STATUS;
4.系统变量和状态信息也可以使⽤ mysqladmin命令来查看:mysqladmin variables mysqladmin extended-statu
5.查看具体的一个变量可以使用like和通配符
关于服务器的选项、系统变量、状态变量参考以下官⽹列表
对于当前我们重点了解的为这样的变量
关于作用域的介绍
系统变量和选项
使⽤系统变量
1.使用系统变量的必要性:在安装完mysql程序之后,当启动mysqld这个服务端程序时,它是带有默认值的,这些默认值的话对于开发环境的影响并不是很大,但当应用程序部署上线对外提供服务时,大部分的应用程序的负载量较大,产生的数据量也很大,这就需要提高服务器的硬件配置,如加内存,加硬盘等,完成之后,像mysqld这样的服务器程序的默认值是与业务场景贴合的不是很好,这就需要根据业务场景与硬件配置来调整相关的参数,来压榨硬件的性能以达到最高性能,满足业务场景
2.我们介绍了通过选项⽂件和命令⾏设置相应系统变量的值,设置系统变量的语法与命令选项的 语法相同,指定变量名称时,破折号和下划线可以互换使⽤。例如, --general_log=ON 和 - -general-log=ON 是等价的,但我们推荐的还是前面的写法
举例:为服务器指定 256 KB 的排序缓冲区⼤⼩和 1 GB 的最⼤数据包⼤⼩# 在命令⾏的指定mysqld --sort-buffer-size=256K --max-allowed-packet=1G# 在选项⽂件中指定[mysqld]sort_buffer_size=256kmax_allowed_packet=1g
示例1:设置全局系统变量最⼤连接数为1000
使用到的命令(两种书写方式)
mysql> SET GLOBAL max_connections = 1000;mysql> SET @@GLOBAL.max_connections = 1000;
示例2:将全局系统变量持久化到 mysqld-auto.cnf ⽂件(同时设置运⾏时值)
使用到的命令:(两种方式)
# PERSIST 表⽰持久化的同时设置全局变量的值mysql> SET PERSIST max_connections = 1000;mysql> SET @@PERSIST.max_connections = 1000;
首先对于这个文件前面在介绍配置文件时就已经出现了
示例3:将全局系统变量持久化到 mysqld-auto.cnf ⽂件(不设置运⾏时值)
# PERSIST_ONLY 表⽰持久化的同时不设置全局变量的值mysql> SET PERSIST_ONLY max_connections = 1000;mysql> SET @@PERSIST_ONLY.max_connections = 1000;
删除持久化的系统变量可以使⽤: RESET PERSIST IF EXISTS 系统变量名 ;
示例4:设置 Session 系统变量,时区为"+8:00":
几种方式:
mysql> SET SESSION time_zone='+8:00';mysql> SET @@SESSION.time_zone='+8:00';mysql> SET @@time_zone='+8:00';
7.要显⽰系统变量名称和值,请使⽤以下 SHOW VARIABLES 语句
8.可以使⽤ LIKE ⼦句显⽰与指定内容匹配的变量,也可以使⽤通配符
如:
⽰例:服务器常⽤配置
注意:
1.编辑前先备份原始⽂件
2.如果要修改数据⽬录选项建议先停⽌MySQL服务,并把原data⽬录整体复制到新路径,配置完成后重启服务
在 [mysqld] 节点下添加以下内容
用vim打开 /etc/mysql/my.cnf,在末尾空白处添加如下的内容(粘贴操作:shift+insert键)
登录mysql进行验证
注:在Linux中修改datadir时,可能会遇到权限问题,需要用chmon 777 把目标数据目录的权限改为mysql
查看状态变量
具体的状态变量及表⽰的意义可以参考官⽹⽂档:https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html
MySQL数据⽬录
因为数据目录是可以通过选项datadir修改的,不是固定的路径 ,查询的命令为 mysql > show variables like 'datadir'
退出mysql后,进入这个目录查看一些文件