What to Do if mysql Cannot Be Found

Problem

When you invoke mysql from the command line, your command interpreter can’t find it.

Solution

Add the directory where mysql is installed to your PATH setting. You’ll then be able to run mysql from any directory easily.

Discussion

If your shell or command interpreter can’t find mysql when you invoke it, you’ll see some sort of error message. It might look like this under Unix:

%mysql
mysql: Command not found.

Or like this under Windows:

C:\>mysql
Bad command or invalid filename

One way to tell your command interpreter where to find mysql is to type its full pathname each time you run it. The command might look like this under Unix:

%/usr/local/mysql/bin/mysql

Or like this under Windows:

C:\>"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql"

Typing long pathnames gets tiresome pretty quickly. You can avoid the need to do so by changing location into the directory where mysql is installed before you run it. However, I recommend that you not do that. If you do, you’ll be tempted to put all your datafiles and SQL batch files in the same directory as mysql, thus unnecessarily cluttering up what should be a location intended only for programs.

A better solution is to make sure that the directory where mysql is installed is included in the value of the PATH environment variable that lists pathnames of directories where the command interpreter looks for commands. You can then invoke mysql from any directory by entering just its name, and your command interpreter will be able to find it. This eliminates a lot of unnecessary pathname typing.

An additional significant benefit is that because you can easily run mysql from anywhere, you won’t need to put your datafiles in the directory where mysql is located. When you don’t have to run mysql from a particular location, you’re free to organize your files in a way that makes sense to you, not in a way imposed by some artificial necessity. For example, you can create a directory under your home directory for each database you have and put the work files associated with a given database in the appropriate directory.

For instructions on setting your PATH variable, see Appendix B.

I’ve pointed out the importance of the PATH search path variable here because I have seen many questions from people who aren’t aware of the existence of such a thing, and who consequently try to do all their MySQL-related work in the bin directory where mysql is installed. This seems particularly common among Windows users.

On Windows, another way to avoid typing the pathname or changing into the mysql directory is to create a shortcut and place it in a more convenient location such as the desktop. This makes it easy to start mysql just by opening the shortcut. To specify command options or the startup directory, edit the shortcut’s properties. If you don’t always invoke mysql with the same options, it might be useful to create one shortcut for each set of options you need. For example, create one shortcut to connect as an ordinary user for general work and another to connect as the MySQL root user for administrative purposes.

Get MySQL Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.