首页 > 解决方案 > 仅使用 Workbench 拒绝权限

问题描述

我有一个位于服务器上的数据库,它工作正常。我可以从本地服务器访问它,并从连接到网络的任何服务器使用 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 连接到 Web 服务器(此步骤运行正常)并使用本地 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

我知道这个配置不常见,但我没有安装它,我不想接触太多,因为它现在正在工作并且很多人都在使用它。

我也尝试过编辑hosts.allow添加该行mysqld: all,但它不起作用。

可能是什么问题?谢谢你的帮助。

(我也检查过 Stackoverflow 的帖子,但找不到解决方案)

标签: mysqlfedora

解决方案


您需要配置您的 mysql 以允许远程登录。然后您可以指定您的 ip 或通配符 * 以允许所有 ip 访问 mysql 数据库。

这是授予远程访问权限的命令。

登录到数据库服务器。以 root 用户身份连接到 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';

推荐阅读