【问题标题】:Run MySQL Statement in MAC .bash file在 MAC .bash 文件中运行 MySQL 语句
【发布时间】:2019-02-13 13:08:05
【问题描述】:

我正在尝试使用终端在 Mac 中运行文本文件。该文件将连接到 MySQL 服务器并将 CSV 文件加载到表中。但是当我在终端中运行文件时,它要求输入 MySQL 密码,并在下一步给出错误消息“MySQL Error 1045 (28000): Access denied for user 'root'@'hostaddress em>'(使用密码:YES) ”。 我是 Mac 环境的新手,所以无法找到解决方案。

下面是示例:

#! /bin/bash

MysqlHost=server address
MysqlUser=user name
MysqlPass=password
MysqlPort=3306
MysqlDB=test


mysqlsh -h$MysqlHost -u$MysqlUser -D$MysqlDB --sql -e"LOAD DATA LOCAL INFILE 
'/Users/Desktop/file.csv' INTO TABLE tab_list FIELDS 
TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES "

我得到的错误:

MAC6s-MacBook-Air:extracts ABC$ ./batch_test.txt 
Please provide the password for 'root@xxx.xxx.xxx.xxx': 
qwerty
MySQL Error 1045 (28000): Access denied for user 'root'@'xxx.xxx.xxx.xxx'
(using password: YES) 

【问题讨论】:

  • 检查stackoverflow.com/a/14235558/713789你需要像-u root -p密码一样传递。
  • @AnirudhaGupta 我认为这不是问题,因为 MySQL 显然按预期要求输入密码,而且命令行对我来说似乎是正确的。
  • @Binarus 我读了你的回答,这正是 1-2 周前发生在我身上的事情,一个 mysql 安装中有多个主机,一个是 localhost,另一个是 127.0.0.1,最后一个是: :1。我在主机上创建了一个帐户并查看另一个帐户。

标签: mysql macos terminal


【解决方案1】:

您的问题可能是由多种原因引起的,但恕我直言,这是最有可能的原因:

MySQL 授予或拒绝访问不仅基于用户名和密码,还基于访问的主机来自。换句话说,您可能会遇到这样一种情况,您可以使用某个用户名和某个密码从某个主机登录到 MySQL 数据库,但是您可以 登录到同一个数据库。 em>另一个主机使用相同的用户名和密码。

因此,我要做的第一件事是检查各个用户的访问权限(在您的情况下为 root)。为此,您必须登录到您的 MySQL 服务器(当然使用主机名和用户名)并至少查看 mysqldbhostuser 表数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多