错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用密码:YES)

错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用密码:YES)

我正在尝试使用将数据从 CSV 复制到 mysql外壳脚本我是全新的。我正在使用我的测试服务器。

mysql -u root -proot csv_imports -e "LOAD DATA INFILE '/var/www/html/$_csv_directory/$_csv_files' REPLACE INTO TABLE temp_test_data FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'"

我收到错误

错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用密码:YES)

如果我不在本地主机上工作,为什么它会给我错误'根'@'本地主机'

然后我尝试了

mysql -h name-database-db-instance.something.some-server.com -P 3306 -u root -proot -e "LOAD DATA INFILE '/var/www/test.server.re/public_html/csv_files/$_csv_files' REPLACE INTO TABLE table_data FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'"

现在它给了我错误:

用户“codered_db_user”@“%”的访问被拒绝(使用密码:YES)

答案1

要回答有关“localhost”的问题,您需要了解一些有关 MySQL 用户的信息。

MySQL 中的用户实际上由两部分组成:

  • 用户名
  • 网络位置

因此,用户'root'@'localhost'创建一个 root 用户登录名,以便从 localhost 登录。到目前为止,我明白了吗?

您实际上会看到它出现,因为如果您不指定主机,您的 MySQL 客户端将默认连接到在本地主机上运行的 MySQL 实例。

因此,从 MySQL 服务器的角度来看,登录尝试是由来自本地主机的 root 发起的'root'@'localhost'

关于您的密码,我似乎记得某些版本的客户端需要您在命令行上指定密码时使用--passwordnot 。-p

相关内容