本章内容

  • 服务器配置


服务器配置

  1. [mysqld]选项服务器系统变量服务器状态变量

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

一、服务器选项

  1. 获取mysqld的可用选项列表:
mysqld --help --verbose
mysqld --print-defaults #获取默认设置
  1. 设置服务器选项方法:
    z
    在命令行中设置
shell> ./mysqld_safe --skip-name-resolve=1

在配置文件my.cnf中设置

vim /etc/my.cnf
    skip_name_resolve=1

二、服务器系统变量:分全局和会话两种

  1. 获取系统变量
mysql> SHOW GLOBAL VARIABLES;
mysql> SHOW [SESSION] VARIABLES;
mysql> SELECT @@VARIABLES;
  1. 修改服务器变量的值:
mysql> help SET
  1. 修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效
mysql> SET GLOBAL system_var_name=value;
mysql> SET @@global.system_var_name=value;
  1. 修改会话变量:
mysql> SET [SESSION] system_var_name=value;
mysql> SET @@[session.]system_var_name=value;

三、服务器状态变量:分全局和会话两种

  1. 状态变量(只读):用于保存mysqld运行中的统计数据的变量,不可更改
mysql> SHOW GLOBAL STATUS;
mysql> SHOW [SESSION] STATUS;
  1. 服务器变量SQL_MODE
    SQL_MODE:对其设置可以完成一些约束检查的工作,可分别进行全局的设置或当前会话的设置。
    官方文档: SQL_MODE
  2. 常见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

将"

  1. 示例:不允许超过长度的值写入
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. 查看服务器的状态
    示例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     |
+-------------------+-------+