MYSql config bind-address设置为0.0.0.0但netstat在Ubuntu上显示不同

时间:2016-09-19 20:54:13

标签: mysql ubuntu

Following this thread。我已成功编辑my.cnf文件以注释掉#bind-address值,并尝试指定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_name'上的MySQL服务器

我做错了什么?

2 个答案:

答案 0 :(得分:2)

var cem = ""John Doe <jdoe@example.com""; ^^--- start/stop string ^^^^--- undefined variable ^^^ another undefined variable ^--- less than ^^^^---even more undefined variables. 的绑定地址只是允许它接受远程连接的步骤的一部分。这些步骤包括使用`#skip-networking'

明确地删除
0.0.0.0

服务器重启。

然后,您需要一个用户,主机组合进行登录,理想情况下需要[mysqld] bind-address = 0.0.0.0 # skip-networking 到数据库以使用足够(不过量)的权限。

您可以使用GRANT

查看当前用户

请参阅GRANT Syntax上的MySQL手册页。

我写了一篇关于通配符select user,host from mysql.user主机和其他小细节的回复Here

测试说明如下:

%

enter image description here

现在,上面的蓝色行(USAGE)除了用户可以登录之外几乎没有任何意义,就是这样。第2行显示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'@'%'; cmd的数据库的PRIVILEGES

GRANT中查看用户:

enter image description here

关于上述情况,

mysql.user

上面的第一个查询是针对MySQL 5.7之前的。第二个查询是针对5.7及之后的。密码经过哈希处理。主机是通配符select user,host,password from mysql.user where user='jeffrey123z'; select user,host,authentication_string from mysql.user where user='jeffrey123z'; ,表示从任何主机登录。

答案 1 :(得分:0)

我有同样的问题:mysql配置正确,sudo lsof -i -P -n | grep 3306似乎工作正常,但TCP 127.0.0.1:3306 (LISTEN)仍然给了我TCP *:3306 (LISTEN)而不是预期的ps aux | grep mysql,我注意到了来自/usr/bin/mysqld,{{1}}实际上没有重新启动。

我的新设置必须完全重启才能生效。