返回

解决 MySQL Workbench 导入数据到 Azure 数据库时访问权限被拒绝问题

mysql

使用 MySQL Workbench 导入大型数据集到 Azure 数据库的指南

在使用 MySQL Workbench 将大型数据集导入到 Azure 数据库时,经常会遇到错误 1045,提示访问权限被拒绝。本指南将深入探讨这个问题,并提供分步解决方案,帮助你成功导入数据。

问题

错误 1045 "Access denied for user '[my_username]'@'%' (using password: YES)" 通常表明用于连接到 Azure 数据库的用户名或密码不正确。或者,可能是该用户尚未被授予访问数据库的权限。

解决方法

步骤 1:验证凭据

确保使用的是 Azure 数据库管理员帐户的用户名和密码。仔细检查凭据是否正确输入。

步骤 2:授予访问权限

如果凭据正确,则需要授予用户访问 Azure 数据库的权限:

  • 在 Azure 门户中,导航到你的 Azure 数据库。
  • 选择 "安全性" > "防火墙和虚拟网络"。
  • 单击 "添加客户端 IP 地址"。
  • 输入你的计算机 IP 地址。
  • 在 "用户名" 字段中,输入要授予权限的用户。
  • 单击 "保存"。

步骤 3:调整 MySQL Workbench 连接设置

更新 MySQL Workbench 中的连接设置:

  • 右键单击 Azure 数据库连接,选择 "编辑连接"。
  • 输入已授予访问权限的用户名和密码。
  • 单击 "测试连接" 确认连接成功。

导入数据

获取访问权限后,即可导入数据:

步骤 4:使用 LOAD DATA INFILE 语句

修改 LOAD DATA INFILE 语句:

LOAD DATA LOCAL INFILE 'C:\Users\natal\Documents\Masters\Cuny SPS MDS\Spring 2024\Data 607\job_postings_revised.csv' INTO TABLE job_postings
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
  • 添加 OPTIONALLY ENCLOSED BY '"' 允许 CSV 字段包含引号。
  • 使用 LOAD DATA LOCAL INFILE,因为它适用于导入到远程数据库。

步骤 5:执行查询

在 MySQL Workbench 中运行 LOAD DATA LOCAL INFILE 查询,开始导入过程。

其他提示

  • 确保 CSV 文件格式正确,没有语法错误。
  • 增加连接超时设置,避免超时错误。
  • 如果仍遇到问题,请咨询 Azure 技术支持。

常见问题解答

1. 如何验证用户是否具有访问权限?

在 Azure 门户中,导航到你的 Azure 数据库,选择 "安全性" > "管理员",查看是否有要导入数据的用户。

2. 如何确定 CSV 文件格式是否正确?

使用文本编辑器打开 CSV 文件,检查字段是否以逗号分隔,引号是否正确转义。

3. 如何防止导入过程超时?

在 MySQL Workbench 的 "编辑连接" 对话框中,增加 "连接超时" 设置。

4. 为什么在导入过程中会遇到错误 1290?

错误 1290 "The MySQL server is running with the --secure-file-priv option so it cannot execute this statement" 表示需要在 MySQL 服务器上配置 secure_file_priv 选项。将其设置为目录路径,例如 /var/lib/mysql-files。

5. 如何处理导入过程中的重复数据?

在 LOAD DATA INFILE 语句中使用 IGNORE ,例如 IGNORE 1 LINES,忽略特定的行。