连接失败:用户访问被拒绝 - AWS RDS 中托管的 MySQL 数据库

问题描述

我正在尝试连接到托管在 AWS 中的 MysqL 数据库以获得闪亮的仪表板,但没有成功。它抛出错误 Access denied for user:

R error

很抱歉我无法生成 reprex,因为我无法控制 aws 基础架构。任何有关从 R 调试云端数据库连接的建议将不胜感激。

这是R代码

con <- DBI::dbConnect(RMariaDB::MariaDB(),host     = "xxxxx.eu-west-1.rds.amazonaws.com",dbname   = "my_schema",user     = "my_user",password = "my_pw",port     = 3306)

我知道我可以从我的 IP 连接到主机,因为我可以从 Power BI 和 Python 访问数据库

来自 Power BI:

Power BI MySQL connection

来自蟒蛇:

import MysqL.connector as MysqL
from tabulate import tabulate

HOST = "xxxxx.eu-west-1.rds.amazonaws.com"
DATABASE = "my_schema"
USER = "my_user"
PASSWORD = "my_pw"
db_connection = MysqL.connect(host=HOST,database=DATABASE,user=USER,password=PASSWORD)

cur = db_connection.cursor(buffered=True)

cur.execute("SELECT * FROM my_table")

rows = cur.fetchall()

print(tabulate(rows,headers=cur.column_names))

python query

解决方法

我必须解决从我的 Windows 10 本地电脑到 Ubuntu 服务器的更改。在 Ubuntu 中,连接是轻而易举的。在 install.packages("RMariaDB") 之前运行:

sudo apt install libsodium-dev
sudo apt install libxml2-dev
sudo apt install libmariadbclient-dev

windows sucks!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...