zoukankan      html  css  js  c++  java
  • 【MySQL案件】mysql登录-S失败

    1.1.1. mysql登录mysql时间,-S参数失效

    【环境的叙述性说明】

    mysql5.5.14

    【问题叙述性说明】

    配置多个实例

    实例1

    实例2

    datadir

    /home/mysql_3306

    /home/mysql_3307

    basedir

    /usr

    /usr

    socket

    /home/mysql_3306/mysq.sock

    /home/mysql_3307/mysq.sock

    登录实例2的时候,却连接到了实例1:

    mysql -S /home/mysql_3307/mysql.sock

    > show variables like '%sock%';

    +---------------+-----------------------------+

    | Variable_name | Value                       |

    +---------------+-----------------------------+

    | socket        | /home/mysql_3306/mysql.sock |

    +---------------+-----------------------------+

    【问题原因】

    mysql命令中的-S參数是用来指定unix_socket,可是此时mysql非常明显没有使用socket。

    查看/etc/my.cnf配置文件。发现[client]域配置例如以下:

    [client]

    host            = 127.0.0.1

    尝试改动host=localhost 和凝视掉host。再次尝试登录mysql:

    mysql -S /home/mysql_3307/mysql.sock

    > show variables like '%sock%';

    +---------------+-----------------------------+

    | Variable_name | Value                       |

    +---------------+-----------------------------+

    | socket        | /home/mysql_3307/mysql.sock |

    +---------------+-----------------------------+

    此时,正常登录上了指定的实例。

    再次測试登录mysql:

    mysql -S /home/mysql_3306/mysql.sock -h 127.0.0.1-P 3307

    > show variables like '%sock%';

    +---------------+-----------------------------+

    | Variable_name | Value                       |

    +---------------+-----------------------------+

    | socket        | /home/mysql_3307/mysql.sock |

    +---------------+-----------------------------+

    mysql登录的时候指定的socket是3306port的,host是127.0.0.1,port是3307。登录后。连接的是3307port的实例。

    mysql -S /home/mysql_3307/mysql.sock -h127.0.0.1

    > show variables like '%sock%';

    +---------------+-----------------------------+

    | Variable_name | Value                       |

    +---------------+-----------------------------+

    | socket        | /home/mysql_3306/mysql.sock |

    +---------------+-----------------------------+

    mysql登录的时候指定的socket是3307port的。host是127.0.0.1,port没有指定,登录后,连接的是3306port的实例。

     综上,mysqlclient连接mysql数据库的时候,假设同一时候指定了socket和host的时候,mysql会採使用TCP/IP协议日志。此时socket它将被忽略。默认情况下访问3306port。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    STL 里出现 warning C4018: “<”: 有符号/无符号不匹配
    (程序员面试题精选(02))-设计包含min函数的栈
    C++的内存分配问题
    C++ const解析(转)
    关于QQ一些功能的实现(转)
    C++中堆和栈的完全解析(转)
    关于Windows的TortoiseSVN 不能Check out google 代码的问题
    WPF笔记(2.6 ViewBox)——Layout
    我也设计模式——0.前言
    WPF笔记(2.8 常用的布局属性)——Layout
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4732846.html
Copyright © 2011-2022 走看看