2_MySQL启动选项,系统变量和状态

在程序启动时指定的设置项称之为启动选项(startup options)

  • 可以放在命令行中指定;
  • 可以放在配置文件中指定。

启动选项

命令行中指定

  1. 通用格式: --启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n],例如mysqld --default-storage-engine=MyISAM

  2. 在选项名前加上--前缀,例如mysqld --skip-networking

  3. 选项名是由多个单词构成的,它们之间可以由短划线-连接起来,也可以使用下划线_连接起来,例如mysqld --skip_networking

  4. 选项名、=、选项值之间不可以有空白字符;

  5. 查看mysqld支持的启动选项,mysqld --verbose --help

  6. 选项名区分大小写,支持短形式;

    长形式 短形式 含义
    --host -h 主机名
    --user -u 用户名
    --password -p 密码

配置文件中指定

在命令行中设置启动选项只对当次启动生效,

推荐把启动选项配置在配置文件中,每次启动服务器时,会从配置文件中加载。

配置文件的路径

在类UNIX操作系统中,MySQL会按照下列路径来寻找配置文件:

路径名 备注
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf 特定于服务器的选项(仅限服务器)
defaults-extra-file 命令行指定的额外配置文件路径
~/.my.cnf 用户特定选项
~/.mylogin.cnf 用户特定的登录路径选项(仅限客户端)

配置文件的内容

配置文件中的启动选项被划分为若干个,每个组有一个组名,用中括号[]包括。

[server]
option1     #这是option1,该选项不需要选项值
option2 = value2      #这是option2,该选项需要选项值
(具体的启动选项...)

[mysqld]
(具体的启动选项...)

[mysqld_safe]
(具体的启动选项...)

[client]
(具体的启动选项...)

[mysql]
(具体的启动选项...)

[mysqladmin]
(具体的启动选项...)

不同的启动命令读取的组不同。

启动命令 类别 能读取的组
mysqld 启动服务器 [mysqld][server]
mysqld_safe 启动服务器 [mysqld][server][mysqld_safe]
mysql.server 启动服务器 [mysqld][server][mysql.server]
mysql 启动客户端 [mysql][client]
mysqladmin 启动客户端 [mysqladmin][client]
mysqldump 启动客户端 [mysqldump][client]

配置的优先级

  1. 命令行指定优先;
  2. 最后一个配置文件最后分组的配置生效;

系统变量

启动选项是在程序启动时传递的参数

而系统变量是影响服务器运行行为的变量

  • 命令行/配置文件指定;
  • 在运行时修改

查看系统变量

  1. 支持模糊查询,SHOW VARIABLES [LIKE 匹配的模式];

系统变量

  1. 系统变量的作用范围
    1. 全局变量
      1. GLOBAL
      2. 影响服务器的整体操作;
    2. 会话变量
      1. SESSION/LOCAL
      2. 影响某个客户端连接的操作;
  2. 服务器启动时,会初始化全局变量
  3. 客户端连接时,会将全局变量初始化会话变量
  4. 设置系统变量
    • SET [GLOBAL|SESSION] 系统变量名 = 值;
    • SET [@@(GLOBAL|SESSION).]var_name = XXX;
    • 省略作用范围,默认会是SESSION
  5. 查看系统变量
    • SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
    • 省略作用范围,默认会是SESSION

状态变量

状态变量用于显示服务器程序运行状况

  1. 仅由服务器自行设置;
  2. SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
  3. 省略作用范围,默认会是SESSION

posted @ 2024-10-02 20:28  夜是故乡明  阅读(5)  评论(0编辑  收藏  举报