zoukankan      html  css  js  c++  java
  • Can't connect to local MySQL server through socket

    mysql -uroot
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    

    这是mysql登录时找不到套接字的问题。

    首先需要明白的是,Linux端的mysql server启动时会开启一个socket,Linux上的MySQL的客户端在不使用IP连接时mysql server时,默认也会通过套接字来链接mysql server。

    1.mysql server的套接字文件。

    如果不手动配置my.cnf,那么默认的socket一般是DATADIR/mysql.sock,而DATADIR如果没有手动修改,一般默认是/var/lib/mysql目录。不同的mysql版本,可能socket的默认路径是/tmp/mysql.sock。

    例如我将socket路径修改为/data/mysql.sock

    2.客户端连接时使用的套接字文件。

    在Linux上的各种mysql类客户端(例如mysql,mysqladmin,mysqldump,mysqlimport等)连接mysql server时,如果指定的主机名是'localhost',则会使用套接字来连接mysql server。因此,必须为这些客户端指定正确的套接字。

    方法一:在连接命令行上使用"-S"选项指定

    mysqladmin -S /data/mysql.sock
    mysql -S /data/mysql.sock
    mysqldump -S /data/mysql.sock
    

    方法二:在配置文件中指定
    例如在my.cnf中:

    [client]
    socket=/data/mysql.sock
    

    client段的配置表示任何客户端连接mysql server时都使用该段配置。因此,这样配置后,无论是mysql、mysqldump、mysqladmin还是其他的客户端都会使用socket=/data/mysql.sock进行连接。

    除了使用[client]指定全局客户端的连接参数,还可以为特定的客户端指定连接参数。例如下面为mysql、mysqldump、mysqladmin这3个客户端分别指定socket连接参数。

    [mysql]
    socket=/data/mysql.sock
    
    [mysqldump]
    socket=/data/mysql.sock
    
    [mysqladmin]
    socket=/data/mysql.sock
    

    注意:如果使用IP,例如mysql -uroot -h'192.168.100.10'则表示使用TCP/IP协议连接mysql,这时不会使用套接字,就没有套接字找不到的问题。

  • 相关阅读:
    MyEclipe 配置 ivy 插件
    PHP 向 MySql 中数据修改操作时,只对数字操作有效,非数字操作无效,怎么办?
    Hadoop 中 Eclipse 的配置
    Hadoop 配置好hive,第一次在conf能进入,第二次就不行了,怎么办?
    7系列FPGA远程更新方案-QuickBoot(转)
    Serial interface (RS-232)
    Linux下安装微信(转)
    《图解HTTP》读书笔记(转)
    《图解TCP/IP》读书笔记(转)
    7 Serial Configuration 理解(三)
  • 原文地址:https://www.cnblogs.com/f-ck-need-u/p/9098664.html
Copyright © 2011-2022 走看看