为什么/etc/mysql/my.cnf为空?


16

我正在尝试编辑my.cnf文件以允许远程访问,并最终使用Windows Server中的软件为MySQL Server配置计划的备份。

我遵循这些指示。但是,/etc/mysql/my.cnf我的Ubuntu上的文件只有:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

它不包含我可以编辑的任何配置。为什么会这样呢?


这意味着文件仅处于默认状态,即自安装以来的原始格式
Sergiy Kolodyazhnyy

Answers:


29

首先,正如AB正确指出的那样,文件不是空的。它有两个相当重要的指令,即

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

这些行表示可以在列出的目录中找到其他配置文件(在这种情况下为.cnf):

/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/

这两个目录中的后一个目录应包含mysqld.cnf。换句话说,适当的配置文件应为:

/etc/mysql/mysql.conf.d/mysqld.cnf

2
无论哪种方式都不对。当我编辑中途空的my.conf文件并例如设置wait_timeout = 600时,服务mysql无法再启动
。.– phil294

这是问题的确切答案。
Lasitha Benaragama

希望我能在6小时前找到它!
新手

@Blauhirn当我在这里输入密码时,也是如此。没有它,服务就启动了,但是显然在[mysqld]下并没有像wait_timout和password这样正确地解析所有内容。
min hundje

5

该文件不为空。它包含注释-带前导行的行#和导入语句-带前导行的行!。导入语句意味着也将使用其他配置。

编辑配置文件还意味着添加新的配置行。


4

我的文件是一样的。您需要在要添加的命令上方添加正确的组,否则服务将无法启动。

要添加,bind-address您需要在其[mysqld]上方添加。

如果您需要检查哪些群体是其他命令,有一个例子my.cnf文件在这里

如果要启用所有接口的远程连接(即0.0.0.0),则文件如下所示,但是请确保正确设置防火墙。

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]    
bind-address = 0.0.0.0

注意[mysqld]组。


这真是太痛苦了。已经尝试使远程连接工作近两天了。开箱即用应启用远程连接。
Mark Alexa

您为什么要开箱即用地将每个数据库服务器都暴露给Internet?那里没有足够的不安全系统吗?
A. Scherbaum


3

在那种情况下,该文件不是包含有关绑定地址,二进制日志等所有信息的主要文件。但是还有另一个文件,其中包括它们。尝试这个:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

它帮助了我,它应该帮助了您。


1

在Ubuntu 16.04 / MySQL 5.7上,至少my.cnf实际上是空的,因为它是到另一个文件的符号链接,该符号链接回到其他答案中提到的/etc/mysql/mysql.conf.d中的mysql.cnf。如上所述,在此处进行更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.