我是在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端口状态
答案 0 :(得分:1)
由于您可以发出CREATE USER语句,因此您至少具有对MySQL的本地访问权限。
使用此访问权限,检查performance_schema.host_cache
表:该表列出了所有可能的导致拒绝连接的根本原因。
https://dev.mysql.com/doc/mysql-perfschema-excerpt/5.7/en/host-cache-table.html
通过此操作以及状态变量等,您应该能够确定是否:
也尝试使用简单的telnet连接到端口3306,看看是否有连接和一些答复数据返回,表明至少可以通过网络访问服务器。
编辑:
注释cnf文件中的绑定地址是一回事,但是最好验证服务器实际使用了哪个绑定地址:
mysql> show variables like "%bind%";
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| bind_address | * |
| mysqlx_bind_address | * |
+---------------------+-------+
2 rows in set (0.02 sec)
这可能会影响连接。
答案 1 :(得分:0)
提供apache远程访问
答案 2 :(得分:0)
看到这一行表明MySQL正在监听ipv6:
:::3306
我认为MySQL当前仅在 上监听ipv6地址(和本地主机),因此请尝试将bind-address设置为您正在使用的ipv4地址。
答案 3 :(得分:0)
您是否尝试过ping MySQL服务器并通过telnet端口?
::: 3306表示您的MySQL服务器正在ipv4和ipv6上监听, 如果您想通过ipv6访问它,则 您需要添加
bind-address = ::
支持您的ipv6访问权限