(mysql.info.gz) Can not connect to server
Info Catalog
(mysql.info.gz) Error Access denied
(mysql.info.gz) Common errors
(mysql.info.gz) Old client
A.2.2 `Can't connect to [local] MySQL server'
---------------------------------------------
A MySQL client on Unix can connect to the `mysqld' server in two
different ways: By using a Unix socket file to connect through a file
in the filesystem (default `/tmp/mysql.sock'), or by using TCP/IP, which
connects through a port number. A Unix socket file connection is faster
than TCP/IP, but can be used only when connecting to a server on the
same computer. A Unix socket file is used if you don't specify a
hostname or if you specify the special hostname `localhost'.
If the MySQL server is running on Windows 9x or Me, you can connect
only via TCP/IP. If the server is running on Windows NT, 2000, XP, or
2003 and is started with the `--enable-named-pipe' option, you can also
connect with named pipes if you run the client on the host where the
server is running. The name of the named pipe is `MySQL' by default.
If you don't give a hostname when connecting to `mysqld', a MySQL
client first will try to connect to the named pipe. If that doesn't
work, it will connect to the TCP/IP port. You can force the use of
named pipes on Windows by using `.' as the hostname.
The error (2002) `Can't connect to ...' normally means that there is no
MySQL server running on the system or that you are using an incorrect
Unix socket filename or TCP/IP port number when trying to connect to the
server.
Start by checking whether there is a process named `mysqld' running on
your server host. (Use `ps xa | grep mysqld' on Unix or the Task
Manager on Windows.) If there is no such process, you should start the
server. Starting server.
If a `mysqld' process is running, you can check it by trying the
following commands. The port number or Unix socket filename might be
different in your setup. `host_ip' represents the IP number of the
machine where the server is running.
shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h host_ip version
shell> mysqladmin --protocol=socket --socket=/tmp/mysql.sock version
Note the use of backticks rather than forward quotes with the `hostname'
command; these cause the output of `hostname' (that is, the current
hostname) to be substituted into the `mysqladmin' command. If you have
no `hostname' command or are running on Windows, you can manually type
the hostname of your machine (without backticks) following the `-h'
option. You can also try `-h 127.0.0.1' to connect with TCP/IP to the
local host.
Here are some reasons the `Can't connect to local MySQL server' error
might occur:
* `mysqld' is not running. Check your operating system's process
list to ensure the `mysqld' process is present.
* You are running on a system that uses MIT-pthreads. If you are
running on a system that doesn't have native threads, `mysqld'
uses the MIT-pthreads package. Which OS. However, not
all MIT-pthreads versions support Unix socket files. On a system
without socket file support, you must always specify the hostname
explicitly when connecting to the server. Try using this command
to check the connection to the server:
shell> mysqladmin -h `hostname` version
* Someone has removed the Unix socket file that `mysqld' uses
(`/tmp/mysql.sock' by default). For example, you might have a
`cron' job that removes old files from the `/tmp' directory. You
can always run `mysqladmin version' to check whether the Unix
socket file that `mysqladmin' is trying to use really exists. The
fix in this case is to change the `cron' job to not remove
`mysql.sock' or to place the socket file somewhere else.
Problems with `mysql.sock' Problems with mysql.sock.
* You have started the `mysqld' server with the
`--socket=/path/to/socket' option, but forgotten to tell client
programs the new name of the socket file. If you change the socket
pathname for the server, you must also notify the MySQL clients.
You can do this by providing the same `--socket' option when you
run client programs. You also need to ensure that clients have
permission to access the `mysql.sock' file. To find out where the
mysql server socket is, you can do:
shell> netstat -l | grep mysql
Problems with `mysql.sock' Problems with mysql.sock.
* You are using Linux and one server thread has died (dumped core).
In this case, you must kill the other `mysqld' threads (for
example, with `kill' or with the `mysql_zap' script) before you
can restart the MySQL server. Crashing.
* The server or client program might not have the proper access
privileges for the directory that holds the Unix socket file or
the socket file itself. In this case, you must either change the
access privileges for the directory or socket file so that the
server and clients can access them, or restart `mysqld' with a
`--socket' option that specifies a socket filename in a directory
where the server can create it and where client programs can
access it.
If you get the error message `Can't connect to MySQL server on
some_host', you can try the following things to find out what the
problem is:
* Check whether the server is running on that host by executing
`telnet some_host 3306' and pressing the Enter key a couple of
times. (3306 is the default MySQL port number. Change the value
if your server is listening to a different port.) If there is a
MySQL server running and listening to the port, you should get a
response that includes the server's version number. If you get an
error such as `telnet: Unable to connect to remote host:
Connection refused', then there is no server running on the given
port.
* If the server is running on the local host, try using `mysqladmin
-h localhost variables' to connect using the Unix socket file.
Verify the TCP/IP port number that the server is configured to
listen to (it is the value of the `port' variable.)
* Make sure that your `mysqld' server was not started with the
`--skip-networking' option. If it was, you will not be able to
connect to it using TCP/IP.
* Check to make sure that there is no firewall blocking access to
MySQL. Applications such as ZoneAlarm and the Windows XP personal
firewall may need to be configured to allow external access to a
MySQL server.
Info Catalog
(mysql.info.gz) Error Access denied
(mysql.info.gz) Common errors
(mysql.info.gz) Old client
automatically generated byinfo2html