我正在尝试使用 Alpine 在虚拟机上配置 MySQL 服务器。
我安装了包 mysql
和 mysql-client
。
我知道要正确安装它们,必须通过命令行进行设置或编辑配置。
我还知道 MariaDB 是 MySQL 的 fork 版本。我知道 MySQL 的选项文件名为 my.cnf
,Maria 的选项文件名为 mariadb-server.cnf
。
问题是:我必须配置哪一个,为什么在我正在查看的实现之一中,两个文件都已配置?我在理解 MySQL 和 MariaDB 如何连接以及为什么我必须编辑这两个配置方面遇到一些困难。 my.cnf
恰好只包含
[mysqld]
port=3306
datadir=/var/lib/mysql
bind-address=0.0.0.0
而mariadb-server.cnf
只有
[galera]
bind-address=0.0.0.0
我确实理解这些字段的含义,但我想了解这两个配置是如何一起读取的,优先级等等。
在网络上出现了所有这些“使用 my.cnf 文件配置 MariaDB 服务器”页面之后,还有更多的困惑。那么只有 my.cnf
文件就足够了?似乎我什至找不到任何提到 mariadb-server.cnf
文件的内容。此配置位于 /etc/my.cnf.d/mariadb-server.cnf
可能很有用。
最佳答案
默认情况下,mysqld 将读取几个默认位置中的选项文件(例如/etc/my.cnf)。这些记录如下:https://mariadb.com/kb/en/configuring-mariadb-with-option-files/#default-option-file-locations
此外,my.cnf 文件可能包含 a directive to load others :
!includedir /etc/my.cnf.d/
这意味着加载/etc/my.cnf.d 下的所有文件。文件名并不重要。您可以将文件命名为/etc/my.cnf.d/postgresql.cnf 或其他任何名称,mysqld 仍然会愉快地加载它。
为什么要将一些指令放入单独的文件中而不是将它们全部保存在/etc/my.cnf 中?为了模块化。
如果您想以模块化方式部署一些配置指令集,那么使用单个文件的目录比编辑单个文件要容易一些。您可能在编辑时犯错误,并且意外地更改了与预期不同的行。
如果将某些配置选项组织到单独的文件中,删除它们也很容易。只需删除/etc/my.cnf.d下的其中一个文件,然后重新启动mysqld即可。
Linux 上的许多其他服务都遵循这种使用配置文件目录的模式。找个时间试试这个,你可能会看到很多这样的东西:
ls -d /etc/*.d
关于mysql - 为 MySQL 服务器配置 my.cnf 和 mariadb-server.cnf 文件有什么意义?它们是如何连接的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68114196/