跟随这个线程。我已经成功编辑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服务器”
我究竟做错了什么?
绑定地址到0.0.0.0只是允许其接受远程连接的步骤的一部分。这些步骤包括明确地与# skip-networking
[mysqld]
bind-address    = 0.0.0.0
# skip-networking
并重新启动服务器。
然后,您需要一个用户,主机组合进行登录,理想情况下,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'@'%';
现在,上方的蓝色行(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';
上面的第一个查询是针对MySQL 5.7之前的版本。第二个查询是针对5.7及更高版本。密码是散列的。主机是通配符,%表示可以从任何主机登录。
| 归档时间: | 
 | 
| 查看次数: | 8771 次 | 
| 最近记录: |