I am trying to copy data from CSV to mysql using shell script where I am all new. And I am working with my test server.

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'"

I am getting error

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

If I am not working on localhost, why its giving me error of 'root'@'localhost'?

then I tried

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'"

now its giving me error:

Access denied for user 'codered_db_user'@'%' (using password: YES)

  • 1
    on which server is the database ?
    – Archemar
    Dec 3, 2015 at 13:47
  • 4
    I don't see your mysql command mentioning a server name: if not, then that would explain that it tries to connect to a server on localhost.
    – dhag
    Dec 3, 2015 at 13:47
  • 1
    the password you give -proot must be set on database, and user root must be allowed in mysql. (grant connect to root)
    – Archemar
    Dec 3, 2015 at 13:48
  • @dhag now I have set server name. but still issue is there. Please check I have edited question!
    – Asmita
    Dec 3, 2015 at 13:51
  • 2
    To start with get rid of all the CSV stuff and just try to connect. Does it work if you do mysql -h servername -u root -proot?
    – David King
    Dec 3, 2015 at 14:44

1 Answer 1


To answer your question about "localhost" you need to understand a little bit about MySQL users.

A user in MySQL is actually made up of two things:

  • the username
  • a network location

So the user 'root'@'localhost' makes up a user login for root to login from localhost. With me so far?

You are actually seeing it come up because if you do not specify a host your MySQL client will default to connect to a MySQL instance running on localhost.

So from MySQL servers point of view the login attempt is initiated by root coming from the localhost hence 'root'@'localhost'.

Regarding your password I seem to recall that some versions of the client need you to use --password not -p if you are specifying the password on the command line.

  • yes I got you. I updated my question. Next I have specified server still there is error!! Please check updation! Thanks for efforts, its helping me!
    – Asmita
    Dec 4, 2015 at 7:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .