File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes JDBC and Relational Databases and the fly likes MySQL Linux Administration Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "MySQL Linux Administration Question" Watch "MySQL Linux Administration Question" New topic

MySQL Linux Administration Question

Scott Updike
Ranch Hand

Joined: Feb 16, 2006
Posts: 92
Not sure if this is the proper forum, but I'll start here....

I just installed MySQL 5 in Debian Linux and have a question regarding root access. I followed the installation instructions to a tee and can confirm that the server is running. The one issue that I'm finding is that I can only run the core mysql applications (mysql, mysqlshow, mysqladmin) only as the Linux root user AND if I explicitly state the hostname with the -h option. If I try and launch these apps with any Linux user other than root OR if I don't specify the hostname, I get the following error:

prompt> mysql -u root -p mysql
Password: *****
"Access Denied for user ''@'localhost' (using PASSWORD:YES)"

If I type the following, I can get in:
prompt> mysql -u root -p -h [myhostname] mysql

Again, even as Linux root user, if I don't specify the hostname I get the same error message.

Not sure what I need to do to resolve this....or is this even an issue?

Just for reference, here's some other information:

"select user, host from user" on mysql database, I get the following
root |
root | localhost
root | [myhostname]

My /etc/hosts file looks like localhost localhost [myhostname] [myhostname]

Based on all the documentation I've read so far, not many installations require the -h option. Just want to make sure I don't run into any connection problems when I start connecting this instance to my java app through the connectors.

Paul Campbell
Ranch Hand

Joined: Oct 06, 2007
Posts: 338
Scott Updike
Ranch Hand

Joined: Feb 16, 2006
Posts: 92
I bet I've read that a 1000 times but I still can't seem to find what I'm looking for. Let's take a step back and I'll ask a more fundamental question:

what is preventing other Linux accounts from running mysql, mysqladmin, or mysqlshow even when they use the "-h [myhostname]" option? So far only the Linux superuser root account can run these programs.

I've made sure that everything is owned by the mysql user.

Rob Spoor

Joined: Oct 27, 2005
Posts: 20276

If I recall correctly, some MySQL installations have a default blank password for root - one of the first things to fix.

That's probably why "mysql -u root -p -h [myhostname] mysql" is working - the "mysql" is not directly after the "-p" option, so it is NOT the password you are providing. More likely, you are giving an empty password.

How To Ask Questions How To Answer Questions
It is sorta covered in the JavaRanch Style Guide.
subject: MySQL Linux Administration Question
It's not a secret anymore!