本章内容
- 服务器配置
服务器配置
-
[mysqld]选项
、服务器系统变量
和服务器状态变量
注意:其中有些参数支持运行时修改,会立即生效;有些参数不支持,且只能通过修改配置文件,并重启服务器程序生效;有些参数作用域是全局的,且不可改变;有些可以为每个用户提供单独(会话)的设置
一、服务器选项
- 获取mysqld的可用选项列表:
mysqld --help --verbose
mysqld --print-defaults #获取默认设置
- 设置服务器选项方法:
z
在命令行中设置
shell> ./mysqld_safe --skip-name-resolve=1
在配置文件my.cnf中设置
vim /etc/my.cnf
skip_name_resolve=1
二、服务器系统变量:分全局和会话两种
- 获取系统变量
mysql> SHOW GLOBAL VARIABLES;
mysql> SHOW [SESSION] VARIABLES;
mysql> SELECT @@VARIABLES;
- 修改服务器变量的值:
mysql> help SET
- 修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效
mysql> SET GLOBAL system_var_name=value;
mysql> SET @@global.system_var_name=value;
- 修改会话变量:
mysql> SET [SESSION] system_var_name=value;
mysql> SET @@[session.]system_var_name=value;
三、服务器状态变量:分全局和会话两种
- 状态变量(只读):用于保存mysqld运行中的统计数据的变量,不可更改
mysql> SHOW GLOBAL STATUS;
mysql> SHOW [SESSION] STATUS;
- 服务器变量SQL_MODE
SQL_MODE:对其设置可以完成一些约束检查的工作,可分别进行全局的设置或当前会话的设置。
官方文档: SQL_MODE - 常见MODE:
SQL_MODE | 意义 |
NO_AUTO_CREATE_USER | 禁止GRANT创建密码为空的用户 |
NO_ZERO_DATE | 在严格模式,不允许使用‘0000-00-00’的时间 |
ONLY_FULL_GROUP_BY | 如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的 |
NO_BACKSLASH_ESCAPES | 反斜杠“\”作为普通字符而非转义字符 |
PIPES_AS_CONCAT | 将" |
- 示例:不允许超过长度的值写入
set sql_mode='traditional';
MariaDB [mysql]> show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------+
| sql_mode | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,TRADITIONAL,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------+
- 查看服务器的状态
示例1:线程状态
MariaDB [test2]> show status like 'thread%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Threadpool_idle_threads | 0 |
| Threadpool_threads | 0 |
| Threads_cached | 0 |
| Threads_connected | 2 |
| Threads_created | 3 |
| Threads_running | 1 |
+-------------------------+-------+
示例2:查询次数
MariaDB [test2]> show status like 'com_select%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 5 |
+---------------+-------+
示例3:添加次数
MariaDB [test2]> show status like 'com_insert%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Com_insert | 0 |
| Com_insert_select | 0 |
+-------------------+-------+