DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(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