mysql - 仅使用 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 的帖子,但找不到解决方案)
解决方案
您需要配置您的 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';
推荐阅读
- excel - 无法引用工作表上的列表框
- php - PHP测验问题计算单选和复选框
- spring-boot - 如何验证春季数据休息中的路径变量?
- python - 如何在满足条件的数据框中合并行中的列,同时删除行
- mongodb - 如何确保我的 mongo 查询使用索引
- python - 查找列表中多个元素的索引
- amazon-web-services - 如何通过池 ID 获取 Cognito 用户池名称
- c# - WCF IDispatchMessageFormatter 空
- java - 如果我不访问应用程序,则不会收到通知
- angular - 在 HttpEventType.UploadProgress 之后无法获取 HttpEventType.Response