我有一个位于服务器上的数据库,它工作正常。我可以从本地服务器访问它,并使用phpmyadmin从连接到网络的任何服务器访问它。
我想使用Workbench来使用它的功能,但我已经尝试了很多可能性,但我无法连接到它。
我已经找到了很多解决方案,但没有人能帮助我。出于这个原因,我正在努力寻找可以帮助我的人。
首先,我想解释一下,这个数据库可以从phpmyadmin (如前所述)和webserver (我在我的web应用程序中使用数据库)访问,因此,拒绝远程访问的麻烦就被丢弃了。(使用root用户)
此外,我一直在寻找问题,在数据库服务器的日志中,我可以找到:
error: connect to 127.0.0.1 port 3306 failed: Permission denied
channel_by_id: 0: bad id我尝试使用带有TCP/IP的Workbench,通过端口3306使用数据库服务器的IP,并使用SSH连接到the服务器(此步骤运行正常),并使用本地IP和端口3306连接到数据库。
此外,我还检查了端口3306是否已关闭以及是否已打开。
配置(my.cnf)如下:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
max_allowed_packet=1024M
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid我知道这个配置不常见,但我还没有安装它,我不想接触太多,因为它现在是工作的,很多人都在使用它。
我也尝试过在添加mysqld: all行的情况下编辑hosts.allow,但没有成功。
会有什么问题呢?谢谢你的帮助。
(我也查看了Stackoverflow的帖子,但没有找到解决方案)
发布于 2018-10-15 17:20:42
您需要配置您的mysql以允许远程登录。然后,您可以指定您的ip或通配符*,以允许所有ip访问mysql数据库。
这是授予远程访问权限的命令。
登录到数据库服务器。以根用户身份连接到MySQL数据库。输入以下命令:
GRANT ALL ON <local database name>.* TO <remote web node username>@<remote web node server ip address> IDENTIFIED BY '<database user password>'; 例如,
GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';https://stackoverflow.com/questions/52813405
复制相似问题