我正在尝试使用将数据从 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'
。
关于您的密码,我似乎记得某些版本的客户端需要您在命令行上指定密码时使用--password
not 。-p