我是用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]
这是3306端口状态
最佳答案
您至少可以在本地访问 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/