mysql - 我该如何修复它 : Mysql remote access not working

标签 mysql ubuntu

我是用mysql做的

USE mysql;

CREATE user 'test'@'%' IDENTIFIED BY 'test';

GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

在终端

sudo apt-get install ufw

sudo ufw allow mysql

sudo ufw allow 3306

service mysql restart

并在/etc/mysql/mysql.conf.d 中编辑 mysqld.cnf

#bind-address       = 127.0.0.1

但是当我尝试使用此代码在终端中访问 mysql 服务器时

mysql -utest -ptest --port 3306 --host [myip]

enter image description here

这是3306端口状态

enter image description here

最佳答案

您至少可以在本地访问 MySQL,因为您可以发出 CREATE USER 语句。

使用此访问权限,检查 performance_schema.host_cache 表:它列出了拒绝连接的所有可能根本原因。

https://dev.mysql.com/doc/mysql-perfschema-excerpt/5.7/en/host-cache-table.html

有了这个,有了状态变量等,你应该能够弄清楚是否:

  • 连接在网络中被阻塞,甚至无法到达服务器,
  • 由于各种影响身份验证的故障,连接被服务器本身阻止。

也尝试一个简单的 telnet 到端口 3306,看看是否有连接和一些回复数据返回,表明至少可以通过网络访问服务器。

编辑:

在 cnf 文件中注释绑定(bind)地址是一回事,但最好验证服务器实际使用哪个绑定(bind)地址:

mysql> show variables like "%bind%";
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| bind_address        | *     |
| mysqlx_bind_address | *     |
+---------------------+-------+
2 rows in set (0.02 sec)

这会影响连接。

关于mysql - 我该如何修复它 : Mysql remote access not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54970457/

相关文章:

php - EasyPHP 开发服务器 : database server not starting

mysql - 我可以在普通表的左外连接中使用 SQL View 吗?

mysql - 获取具有最后分组行条件的行

git - Dokku 在 ubuntu 上运行,在 git push 上要求输入密码

mysql - 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

mysql - 定期从远程数据库拉取数据到本地

php - 如何取消两个图像的链接?

mysql - 我无法在 ubuntu 18.04 上安装 mysql

python - 从 rc.local 运行 python 脚本不执行

ubuntu:如何将另一个文件添加到 PATH 变量