Mysql Server配置

MySQL服务器mysqld有许多命令选项和系统变量,可以在启动时设置这些选项和变量来配置其操作。要确定服务器使用的默认命令选项和系统变量值,请执行以下命令:

$> mysqld --verbose --help

该命令生成所有mysqld选项和可配置系统变量的列表。它的输出包括默认选项和变量值,看起来像这样:

abort-slave-event-count           0
allow-suspicious-udfs             FALSE
archive                           ON
auto-increment-increment          1
auto-increment-offset             1
autocommit                        TRUE
automatic-sp-privileges           TRUE
avoid-temporal-upgrade            FALSE
back-log                          80
basedir                           /home/jon/bin/mysql-8.0/
...
tmpdir                            /tmp
transaction-alloc-block-size      8192
transaction-isolation             REPEATABLE-READ
transaction-prealloc-size         4096
transaction-read-only             FALSE
transaction-write-set-extraction  XXHASH64
updatable-views-with-limit        YES
validate-user-plugins             TRUE
verbose                           TRUE
wait-timeout                      28800

要查看服务器运行时实际使用的当前系统变量值,请连接到服务器并执行以下语句:

mysql> SHOW VARIABLES;

要查看正在运行的服务器的一些统计指标和状态指标,请执行以下语句:

mysql> SHOW STATUS;

还可以使用mysqladmin命令获得系统变量和状态信息:

$> mysqladmin variables
$> mysqladmin extended-status

MySQL服务器有许多操作参数,可以在服务器启动时使用命令行选项或配置文件(选项文件)更改这些参数。还可以在运行时更改许多参数。

在Windows上,MySQL安装程序与用户交互,并在基本安装目录中创建一个名为my.ini的文件作为默认选项文件。

注意:在Windows上,可能不会显示.ini或.cnf选项的文件扩展名。

完成安装过程后,可以随时编辑默认选项文件,以修改服务器使用的参数。例如,要在文件中使用参数设置,该参数设置在行的开头用#字符进行注释,请删除#,并在必要时修改参数值。要禁用某个设置,请在行的开头添加一个#或将其删除。

对于非Windows平台,在服务器安装或数据目录初始化过程中都不会创建默认选项文件。在没有选项文件的情况下,服务器只从其默认设置开始。

服务器配置验证
从MySQL 8.0.16开始,MySQL 服务器引入了一个 --validate-config 选项。这个选项允许你在不启动服务器到正常操作模式的情况下,检查启动配置文件(通常是 my.cnf 或 my.ini)是否存在问题。

使用 --validate-config 选项时,MySQL 服务器会读取配置文件,但不会真正启动服务。它会检查配置文件中的设置,并报告任何可能的错误或不一致之处。这可以帮助你在尝试启动服务器之前捕获并修复配置问题,从而避免潜在的启动失败或运行时的错误。

mysqld --validate-config

当使用 --validate-config 选项时,MySQL 服务器会检查配置文件的语法和配置选项的有效性。如果没有发现任何错误,服务器将以退出码 0 终止,表示成功执行。如果服务器在配置文件中发现了错误,它会显示一个诊断消息,并以退出码 1 终止,这表示发生了错误。例如:

$> mysqld --validate-config --no-such-option
2018-11-05T17:50:12.738919Z 0 [ERROR] [MY-000068] [Server] unknown
option '--no-such-option'.
2018-11-05T17:50:12.738962Z 0 [ERROR] [MY-010119] [Server] Aborting

当使用 --validate-config 选项时,MySQL 服务器会在发现第一个错误时立即终止。如果你想要执行额外的检查,你需要先修正初始问题,然后再次使用 --validate-config 选项运行服务器。

对于上面的示例,当 --validate-config 显示错误消息时,服务器的退出码是 1。但是,根据 log_error_verbosity 的值,也可能会显示警告和信息消息。这些消息不会立即导致验证终止或退出码为 1。

例如,如果你运行一个带有潜在问题的配置,但这些问题只是警告而不是错误,服务器可能会显示这些警告,但继续验证其他配置项。由于没有发现错误,所以最终退出码将是 0。

$> mysqld --validate-config --log_error_verbosity=2
         --read-only=s --transaction_read_only=s
2018-11-05T15:43:18.445863Z 0 [Warning] [MY-000076] [Server] option
'read_only': boolean value 's' was not recognized. Set to OFF.
2018-11-05T15:43:18.445882Z 0 [Warning] [MY-000076] [Server] option
'transaction-read-only': boolean value 's' was not recognized. Set to OFF.

如果命令产生了相同的警告以及一个错误,那么错误消息将与警告一起显示,并且退出码将是 1。这表示在配置文件检查过程中遇到了至少一个严重的问题,阻止了服务器的正常启动。

$> mysqld --validate-config --log_error_verbosity=2
         --no-such-option --read-only=s --transaction_read_only=s
2018-11-05T15:43:53.152886Z 0 [Warning] [MY-000076] [Server] option
'read_only': boolean value 's' was not recognized. Set to OFF.
2018-11-05T15:43:53.152913Z 0 [Warning] [MY-000076] [Server] option
'transaction-read-only': boolean value 's' was not recognized. Set to OFF.
2018-11-05T15:43:53.164889Z 0 [ERROR] [MY-000068] [Server] unknown
option '--no-such-option'.
2018-11-05T15:43:53.165053Z 0 [ERROR] [MY-010119] [Server] Aborting

--validate-config 选项的范围仅限于服务器可以在不经历正常启动过程的情况下执行的配置检查。因此,配置检查不会初始化存储引擎和其他插件、组件等,也不会验证与这些未初始化子系统相关联的选项。

--validate-config 可以在任何时候使用,但在升级后特别有用,用于检查旧服务器上以前使用的任何选项是否已被升级后的服务器视为已弃用或过时。

例如,tx_read_only 系统变量在 MySQL 5.7 中被弃用,并在 8.0 中被移除。如果 MySQL 5.7 服务器在其 my.cnf 文件中使用了该系统变量,然后升级到 MySQL 8.0,使用 --validate-config 来检查配置将产生以下结果(或类似的消息):

$> mysqld --validate-config
2018-11-05T10:40:02.712141Z 0 [ERROR] [MY-000067] [Server] unknown variable
'tx_read_only=ON'.
2018-11-05T10:40:02.712178Z 0 [ERROR] [MY-010119] [Server] Aborting

--validate-config 可以与 --defaults-file 选项一起使用,以便仅验证特定文件中的选项。这对于检查自定义配置文件或特定服务器的配置特别有用。

$> mysqld --defaults-file=./my.cnf-test --validate-config
2018-11-05T10:40:02.712141Z 0 [ERROR] [MY-000067] [Server] unknown variable
'tx_read_only=ON'.
2018-11-05T10:40:02.712178Z 0 [ERROR] [MY-010119] [Server] Aborting

请记住,如果指定了--defaults文件,它必须是命令行上的第一个选项。(使用反转的选项顺序执行前面的示例会产生一条消息,即--defaults文件本身未知。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值