MySQL系列之八 MySQL服务器变量

 更新时间:2021年07月02日 16:46:18   作者:生生不息.连绵不绝  
其中有些参数支持运行时修改,会立即生效;有些参数不支持,且只能通过修改配置文件,并重启服务器程序生效;有些参数作用域是全局的,且不可改变;有些可以为每个用户提供单独(会话)的设置

系列教程

MySQL系列之开篇 MySQL关系型数据库基础概念
MySQL系列之一 MariaDB-server安装
MySQL系列之二 多实例配置
MySQL系列之三 基础篇
MySQL系列之四 SQL语法
MySQL系列之五 视图、存储函数、存储过程、触发器
MySQL系列之六 用户与授权
MySQL系列之七 MySQL存储引擎
MySQL系列之九 mysql查询缓存及索引
MySQL系列之十 MySQL事务隔离实现并发控制
MySQL系列之十一 日志记录
MySQL系列之十二 备份与恢复
MySQL系列之十三 MySQL的复制
MySQL系列之十四 MySQL的高可用实现
MySQL系列之十五 MySQL常用配置和性能压力测试

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

一、服务器选项

# mysqld --help -verbose #获取所有可以的选项

# mysqld --print-defaults #获取默认设置

# mysqld_safe –-skip-name-resolve=1:在启动服务时加选项参数,禁止反解析IP,提高登录效率;同时也可以将skip_name_resolve=1参数加入到my.cnf配置文件中

二、服务器系统变量

服务器变量分为动态变量和非动态变量,动态变量可以在服务器不重启的情况下修改

服务器变量还分全局变量和会话变量,全局变量修改后影响后来登录的用户;会话变量只影响当前会话,退出后失效

MariaDB [(none)]> SHOW GLOBAL VARIABLES;:查看所有全局变量

MariaDB [(none)]> SHOW VARIABLES;:查看当前所有会话变量

修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效

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运行中的统计数据的变量,不可更改

MariaDB [(none)]> SHOW GLOBAL STATUS; #全局状态变量
MariaDB [(none)]> SHOW STATUS; #会话状态变量

参考官方文档:

https://dev.mysql.com/doc/refman/5.7/en/mysqld-option-tables.html

https://mariadb.com/kb/en/library/full-list-of-mariadb-options-system-and-status-variables

四、SQL_MODE

​ sql_mode既是选项有是变量,作用对其设置可以完成一些约束检查的工作,可分别进行全局的设置或当前会话的设置。

MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode'; #查看sql_mode变量,默认为空

  • NO_AUTO_CREATE_USER 禁止GRANT创建密码为空的用户
  • NO_AUTO_VALUE_ON_ZERO 在自增长的列中插入0或NULL将不会是下一个自增长值
  • NO_BACKSLASH_ESCAPES 反斜杠“\”作为普通字符而非转义字符
  • PAD_CHAR_TO_FULL_LENGTH 启用后,对于CHAR类型将不会截断空洞数据
  • PIPES_AS_CONCAT 将"||"视为连接操作符而非“或运算符”
  • TRADITIONAL:包括STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,是一个参数的集合

MariaDB [(none)]> SET sql_mode='TRADITIONAL';

参考官方文档:https://mariadb.com/kb/en/library/sql-mode

到此这篇关于MySQL系列之八 MySQL服务器变量的文章就介绍到这了,更多相关MySQL服务器变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql提示got timeout reading communication packets的解决方法

    mysql提示got timeout reading communication packets的解决方法

    今天发现mysql错误日志中出现got timeout reading communication packets,一般情况因为部分页面生成有问题导致,这里简单分享一下解决方法
    2019-05-05
  • Sysbench多线程性能测试工具

    Sysbench多线程性能测试工具

    sysbench是一个多线程性能测试工具,可以进行CPU/内存/IO/数据库等性能测试,不过我绝大多数的时候都是用它来对数据库(MySQL)进行oltp测试
    2012-11-11
  • mysql 使用profiling和explain查询语句性能解析

    mysql 使用profiling和explain查询语句性能解析

    MySQL 查询 Profile 可以告诉你每个查询花费了多长时间,使用了多少资源,执行了哪些操作等,这篇文章主要介绍了mysql 使用profiling和explain查询语句性能解析,需要的朋友可以参考下
    2024-02-02
  • Mysql中的Btree与Hash索引比较

    Mysql中的Btree与Hash索引比较

    这篇文章主要介绍了Mysql中的Btree与Hash索引比较,本文起讲解了B-Tree 索引特征、Hash 索引特征等内容,需要的朋友可以参考下
    2015-03-03
  • mysql优化的重要参数 key_buffer_size table_cache

    mysql优化的重要参数 key_buffer_size table_cache

    MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影响最大呢
    2016-05-05
  • MySQL修改存储过程的详细步骤

    MySQL修改存储过程的详细步骤

    这篇文章主要给大家介绍了关于MySQL修改存储过程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • MySql创建分区的方法实例

    MySql创建分区的方法实例

    mysql分区相对于mysql分库分表便利很多,可以对现有的mysql大表添加分区,也可以对已有分区的表扩充分区,下面这篇文章主要给大家介绍了关于MySql创建分区的相关资料,需要的朋友可以参考下
    2022-04-04
  • Truncate Table的用法讲解

    Truncate Table的用法讲解

    今天小编就为大家分享一篇关于Truncate Table的用法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法

    MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法

    这篇文章主要介绍了MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Linux/Mac MySQL忘记密码怎么办

    Linux/Mac MySQL忘记密码怎么办

    Linux/Mac MySQL忘记密码怎么办?这篇文章主要介绍了MySQL忘记密码的解决方法,命令行进行修改,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05

最新评论