简介
在配置服务时,重要的是在将更改应用到它们将影响的环境之前尝试验证您的更改。对于对 MySQL 数据库等基本服务所做的更改尤其如此。
虽然许多更改需要手动检查语义正确性(确保配置意味着您想要表达的意思),但通常您可以自动检查语法正确性(确保更改采用预期的格式)。这提供了一个有限但非常有用的检查,可以捕获拼写错误、不正确的标点符号和格式错误的配置选项,否则这些选项会阻止服务器在尝试合并新更改时正确启动。
在本简短指南中,我们将介绍如何使用内置选项验证 MySQL 服务器配置文件。这可以帮助您验证您执行的编辑在您重新启动服务时不会干扰 MySQL。
检查 MySQL 服务器配置文件
用于运行 MySQL 服务器的 mysqld
二进制文件包含许多您可能不经常使用的选项。其中之一是 --validate-config
标志。
--validate-config
标志使 mysqld
二进制文件解析其配置文件,然后退出。您可以通过键入以下内容来运行验证检查
mysqld --validate-config
如果未发现问题,程序将成功退出,并且没有输出,而不是尝试启动 MySQL 服务器。您可以通过检查其退出代码来验证该进程是否成功退出
echo $?
0
如果发现任何错误,MySQL 将中止该进程,就像在实际启动场景中一样,并输出有关问题发生的文件和行的信息。您可以将语法错误添加到您的 MySQL 配置文件以触发此过程,请参阅输出。例如,您可以
echo "hello there" | sudo tee --append /etc/mysql/my.cnf
现在,当您再次检查配置时,该命令会输出我们添加到配置中的错误行
mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 23.mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
退出代码也验证了发生了错误
echo $?
1
您可以使用 sed
删除我们添加到 MySQL 配置文件中的行。再次验证配置文件以确保删除成功
sudo sed --in-place '/hello there/d' /etc/mysql/my.cnfmysqld --validate-config
现在已验证服务器配置文件在语法上再次正确。
结论
在本指南中,我们介绍了如何使用带有 --validate-config
标志的 mysqld
二进制文件来验证 MySQL 服务器的配置文件是否存在错误。虽然这不能用于检测所有错误,但它在很大程度上可以防止错别字、不正确的配置语法和无效选项。始终在重新启动服务器之前使用 --validate-config
标志是一个好主意,以确保您的新配置在停止数据库服务之前是有效的。
如果您正在使用 Prisma,则可以使用 MySQL 数据库连接器连接到您的 MySQL 服务器并管理您的数据。