MYSql配置绑定地址设置为0.0.0.0,但netstat在Ubuntu上显示不同

MYSql配置绑定地址设置为0.0.0.0,但netstat在Ubuntu上显示不同,mysql,ubuntu,Mysql,Ubuntu,。我已成功编辑my.cnf文件以注释掉绑定地址值,并尝试指定0.0.0.0和我希望允许连接的特定IP地址 我注意到,在执行此操作时,my.cnf链接如下: lrwxrwxrwx 1 root root 24 Sep 9 06:21 my.cnf -> /etc/alternatives/my.cnf 然后这个my.cnf也被链接: lrwxrwxrwx 1 root root 20 Sep 9 06:23 my.cnf -> /etc/mysql/mysql.cnf

。我已成功编辑my.cnf文件以注释掉绑定地址值,并尝试指定0.0.0.0和我希望允许连接的特定IP地址

我注意到,在执行此操作时,my.cnf链接如下:

lrwxrwxrwx   1 root root    24 Sep  9 06:21 my.cnf -> /etc/alternatives/my.cnf
然后这个my.cnf也被链接:

lrwxrwxrwx 1 root root 20 Sep  9 06:23 my.cnf -> /etc/mysql/mysql.cnf
实际上,我正在编辑mysql.cnf文件

我停止/启动MYSQL服务器

然后我运行netstat-nat | grep:3306,它会给我一个:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN 
然后我转到客户端,在“server\u name”上得到无法连接到MySQL服务器的消息

我做错了什么

将地址绑定到0.0.0.0只是允许它接受远程连接的步骤的一部分。这些步骤包括使用skip网络显式删除

和服务器重启

然后,您需要一个用户、主机组合进行登录,理想情况下,还需要一个db授权,以便在拥有足够而不是过多的权限的情况下使用

您可以通过select user、host from mysql.user查看当前用户

请参阅上的MySQL手册页面

我写了一个关于通配符%host和其他小细节的小回答

测试的图示如下所示:

create schema testDB007;
use testDB007;

create table t1
(   id int not null
);

CREATE USER 'jeffrey123z'@'%' IDENTIFIED BY 'mypass123^';
-- note password is mypass123^

GRANT ALL ON testDB007.* TO 'jeffrey123z'@'%';
SHOW GRANTS FOR 'jeffrey123z'@'%';
现在,上面蓝色的一行用法意味着除了用户可以登录之外,几乎没有其他东西,就是这样。第二行显示GRANT cmd中db的权限

查看mysql中的用户。用户:

关于上述情况,

select user,host,password from mysql.user where user='jeffrey123z';

select user,host,authentication_string from mysql.user where user='jeffrey123z';
上面的第一个查询是针对MySQL 5.7之前的版本。第二个查询适用于5.7及其后版本。密码是散列的。主机是通配符%,表示从任何主机登录。

将地址绑定到0.0.0.0只是允许它接受远程连接的步骤的一部分。这些步骤包括使用skip网络显式删除

和服务器重启

然后,您需要一个用户、主机组合进行登录,理想情况下,还需要一个db授权,以便在拥有足够而不是过多的权限的情况下使用

您可以通过select user、host from mysql.user查看当前用户

请参阅上的MySQL手册页面

我写了一个关于通配符%host和其他小细节的小回答

测试的图示如下所示:

create schema testDB007;
use testDB007;

create table t1
(   id int not null
);

CREATE USER 'jeffrey123z'@'%' IDENTIFIED BY 'mypass123^';
-- note password is mypass123^

GRANT ALL ON testDB007.* TO 'jeffrey123z'@'%';
SHOW GRANTS FOR 'jeffrey123z'@'%';
现在,上面蓝色的一行用法意味着除了用户可以登录之外,几乎没有其他东西,就是这样。第二行显示GRANT cmd中db的权限

查看mysql中的用户。用户:

关于上述情况,

select user,host,password from mysql.user where user='jeffrey123z';

select user,host,authentication_string from mysql.user where user='jeffrey123z';

上面的第一个查询是针对MySQL 5.7之前的版本。第二个查询适用于5.7及其后版本。密码是散列的。主机是通配符%,意味着从任何主机登录。

我有相同的问题:mysql配置正确,sudo systemctl restart mysql似乎工作正常,但sudo lsof-I-p-n | grep 3306仍然给了我TCP 127.0.0.1:3306侦听,而不是预期的TCP*:3306侦听,我从ps-aux | grep-mysql中注意到/usr/bin/mysqld实际上并没有重新启动


要使我的新设置生效,需要完全重新启动。

我也遇到了同样的问题:mysql配置正确,sudo systemctl restart mysql似乎工作正常,但sudo lsof-I-p-n | grep 3306仍然为我提供了TCP 127.0.0.1:3306侦听,而不是预期的TCP*:3306侦听,我从ps-aux | grep-mysql中注意到/usr/bin/mysqld实际上并没有重新启动

我的新设置需要完全重新启动才能生效。

它仍在收听127.0.0.1:3306。您尚未有效地修改正确的my.cnf文件。它仍在收听127.0.0.1:3306。您没有有效地修改正确的my.cnf文件。