VPS测评 VPS推荐 VPS优惠
Linux运维

MYSQL启动选项和变量

可以通过mysqld选项,服务器系统变量和状态变量进行MySQL的配置和查看状态。mysqld选项和变量本质上不是同一个东西,但是它们有时候会刚好重名, 某个东西它是mysqld选项还是系统变量可以参考下面的官方给的表格。

官方文档:

https://dev.mysql.com/doc/refman/8.0/en/server-option-variable-reference.html

注意事项:

  • 其中有些参数支持运行时修改,会立即生效
  • 有些参数不支持动态修改,只能通过修改配置文件,并重启服务生效
  • 有些参数作用域是全局的,为所有会话设置
  • 有些可以为每个用户提供单独(会话)的设置

MYSQL服务器选项

服务器选项用横线,不用下划线。

查看mysqld可用选项

mysqld --verbose --help

查看mysqld当前启动选项

mysqld --print-defaults

设置服务器选项的方法有两种

1.启动时在命令行设置

mysqld --basedir=/usr

2.在配置文件中设置,然后重启服务

[mysqld]
basedir=/usr

MYSQL系统变量

可以分全局和会话两种,用下划线,不用横线。

查看系统变量:

#只查看全局的变量
SHOW GLOBAL VARIABLES;

#查看所有变量(GLOBAL和SESSION)
SHOW SESSION VARIABLES;
SHOW VARIABLES;

#查看某个指定的系统变量
SHOW VARIABLES LIKE 'VAR_NAME';
SELECT @@VAR_NAME;

修改全局变量:

#仅对修改后新创建的会话有效,对已建立的会话无效
SET GLOBAL system_var_name=value;
SET @@global.system_var_name=value;

修改会话变量:

SET system_var_name=value;
SET @@system_var_name=value;

范例:修改mysql最大并发连接数

#方法一:修改全局变量
SET GLOBAL max_connections=2000;
SELECT @@max_connections;

#方法二:它也是一个服务器选项,可以写入配置文件后重启服务
[mysqld]
max_connections = 2000

#以上修改完后,需要确保service文件中对于可以同时打开的文件数量的限制是高于这个值的
vim /usr/lib/systemd/system/mysqld.service
[Service]
LimitNOFILE=65535

#重新加载service配置,然后重启mysqld(ubuntu是mysql)
systemctl daemon-reload
systemctl restart mysqld

MYSQL状态变量

MYSQL运行中的用来统计数据的变量,不可修改。

查看服务器状态变量:

#全局变量
SHOW GLOBAL STATUS;
#所有变量
SHOW STATUS;
#查看指定变量
SHOW STATUS LIKE 'VAR_NAME';

范例:统计SELECT查询的次数

SHOW STATUS LIKE "com_select";

变量 SQL_MODE

sql既可以作为全局变量,也可以作为会话变量。

常见mode:

禁止GRANT创建密码为空的用户

NO_AUTO_CREATE_USER

在严格模式,不允许使用’0000-00-00’的时间

NO_ZERO_DATE

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么系统会认为这个SQL是不合法的

ONLY_FULL_GROUP_BY

将反斜杠作为普通字符而非转义字符

NO_BACKSLASH_ESCAPES

将”||”视为连接操作符而非”或”运算符

IPES_AS_CONCAT

范例:修改sql_mode变量

SET sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION";
未经允许不得转载:青蛙主机 » MYSQL启动选项和变量

VPS相关常用工具

PING测试工具自用毛子接码站