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

Roc*_*aco 4 mysql ubuntu

跟随这个线程。我已经成功编辑my.cnf文件以注释掉#bind-address值,并且还尝试指定0.0.0.0以及我要允许连接的特定IP地址。

我确实注意到,在执行此操作时,my.cnf被链接为:

lrwxrwxrwx 1根根9月9日06:21 my.cnf-> /etc/alternatives/my.cnf

然后这个my.cnf也被链接:

lrwxrwxrwx 1根根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服务器”

我究竟做错了什么?

Dre*_*rew 6

绑定地址到0.0.0.0只是允许其接受远程连接的步骤的一部分。这些步骤包括明确地与# skip-networking

[mysqld]
bind-address    = 0.0.0.0
# skip-networking
Run Code Online (Sandbox Code Playgroud)

并重新启动服务器。

然后,您需要一个用户,主机组合进行登录,理想情况下,GRANT需要一个数据库用户才能具有足够的权限(而不是过多的权限)使用。

您可以通过以下方式查看当前用户 select user,host from mysql.user

请参阅有关GRANT语法的MySQL手册页。

在这里写了一个有关通配符%主机和其他次要细节的小解答。

下面是测试的说明:

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'@'%';
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

现在,上方的蓝色行(USAGE)意味着用户只能登录,仅此而已。第二行显示cmd中PRIVILEGES的db GRANT

查看用户mysql.user

在此处输入图片说明

关于以上图片,

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

select user,host,authentication_string from mysql.user where user='jeffrey123z';
Run Code Online (Sandbox Code Playgroud)

上面的第一个查询是针对MySQL 5.7之前的版本。第二个查询是针对5.7及更高版本。密码是散列的。主机是通配符,%表示可以从任何主机登录。