MySQL 5.6在Ubuntu 15.04上找不到正确的my.cnf文件。

10

我试图将一个 MySQL 数据库迁移到一台升级后运行着更新版本 Ubuntu(15.04)的服务器上,在安装了 LAMP 后,我尝试编辑 my.cnf 文件中的绑定地址。但是在 /etc/mysql/my.cnf 中,我只看到如下内容。我添加了 [mysqld] 和 bind address = new address,但似乎没有任何一点可以让我的远程客户端连接到这个数据库。它在线并且 IP 地址应该是正确的。我错过了什么?为什么这个 my.cnf 如此空洞无物?

#
# 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/
3个回答

20

我真傻,显然在这个版本中它是位于 /etc/mysql/mysql.conf.d/ 下的 mysqld.cnf 文件。好吧,为了防止其他人也遇到同样的问题,我发表了这篇帖子......


在这行代码中 - !includedir /etc/mysql/conf.d/,"!" 是表示不包含还是包含的意思? - Ryan
2
你不傻,我也花了“10”个小时找这个)) - Next Developer
即使此文件与上面的注释行相同,我仍然找不到bindaddress。 - subrahmanya bhat
因此,对于任何想要快速复制粘贴的人来说,/etc/mysql/mysql.conf.d/mysqld.cnf 是一个不错的选择。 - S..

9
在Ubuntu 15.04中,MySQL服务器配置文件位于:
/etc/mysql/mysql.conf.d/mysqld.cnf
您可以在此找到bind-address。将其注释掉,然后使用以下命令重新启动MySQL服务器:
service mysql restart
然后您就可以从其他计算机访问您的MySQL服务器了。如果不能,请确保用户被授予足够的权限。
您可以使用以下命令查看MySQL服务器bind-address:
netstat -tap | grep mysql

因此,您可以知道配置是否生效。


我的安装还有一个 /etc/mysql/my.cnf 文件(它是一个符号链接到 my.cnf -> /etc/alternatives/my.cnf)。哪个配置文件是“正确”的,用于自定义设置?编辑 /etc/mysql/my.conf 还是 /etc/mysql/mysql.conf.d/mysqld.cnf 更好? - orrd

0

根据您的Linux发行版,您的my.cnf(以及其余数据目录)可能位于/var/lib/mysql文件夹中。

您还可以运行find命令查找文件:find -name 'my.cnf'。我建议在root目录下以root身份运行此命令。

一旦您找到了正确的my.cnf文件,就会在[mysqld]部分下看到一个参数,看起来像这样:

bind-address = 127.0.0.1

使用#注释掉此参数并保存编辑后的my.cnf文件。重新启动Mysql服务器,您应该能够从任何IP远程连接,只要您尝试连接的用户具有正确的权限和主机(%)。

您可以通过运行以下命令来检查:select user, host from mysql,user;

show grants for 'youruser'@'yourhost';

Mysql的授权和特权。


我进行了查找,/etc/mysql/my.cnf是唯一的位置--我发布的是所有它包含的内容,这让我很沮丧。否则我已经习惯于编辑绑定地址行。我应该假设LAMP安装没有正确安装MySQL吗?我尝试将以前的my.cnf复制到该文件中,但仍然无法允许我远程连接。 - caro
实际上我没有做过这个,但我会接手这个项目,我相信它是使用Ubuntu 15.05镜像文件安装了LAMP。 - caro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接