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服务器
我做错了什么?
答案 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。
测试说明如下:
%
现在,上面的蓝色行(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
中查看用户:
关于上述情况,
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}}实际上没有重新启动。
我的新设置必须完全重启才能生效。