zoukankan      html  css  js  c++  java
  • MySQL-客户端登录问题


    1. 问题描述

    客户端工具使用账号文件连接服务失败,如下图

    image

    2. 问题分析排查

    2.1  命令行方式或是使用全局配置文件验证账号密码文件是否有误

    mysqladmin --defaults-file=/tmp/tmp.ddNIfIJeas ping
    mysqladmin --host=localhost --user=root --password=root --port=3308 --socket=/ups/app/mysql/mysql3308/logs/mysql3308.sock ping

    -- 如果都正常,表明账号密码文件配置无误。否则,检查文件是否配置异常(如书写错误)

    2.2 检查全局配置文件是否存储了默认配置信息

    -- 全局参数配置优先级
    mysqladmin |grep -A1 'Default options'
    image

    -- 注意: 上面的配置文件优先级都比自定义路径配置文件优先级高,相同配置被覆盖,这也会引起连接数据库失败。

    2.3 检查全局参数配置文件及自定义配置文件中程序或组名称配置

      如果选项组名称与程序名称相同,则该组中的选项专门适用于该程序。例如,[mysqld]和[mysql] 组分别应用于mysqld服务器和 mysql客户端程序。前导和尾随空格会自动从选项名称和值中删除。配置文件中后面指定的选项将覆盖先前指定的选项。

    [client]
    port=3306
    socket=/tmp/mysql.sock
    
    [mysqld]
    port=3306
    socket=/tmp/mysql.sock
    key_buffer_size=16M
    max_allowed_packet=8M
    
    [mysqldump]
    quick

    --  [mysqldump]可使 mysqldump特定的选项覆盖 [client]选项,因此,有可能导致客户端选项值与自己预期的不一样导致连接失败。


        此次问题的原因是~/.my.cnf文件配置选项值配置错误账号密码且它的优先级高于自定义配置文件,从而导致登录数据库失败。


    3. 总结

    1)先排查或是依次列出服务器上所有的参数配置文件路径并逐一检查文件选项组中选项值

    for item in $(mysqladmin |awk '/^Default options/{getline;print}' |awk '{i=1;while(i<=NF) {print $i;i++}}'); do
        echo "$item:"
        [[ -f "$item" ]] && grep '^[[a-Z0-9]*]' $item
    done
  • 相关阅读:
    中国的南方人和北方人有什么区别?总算说透了!
    怎样通过穴位按摩来减轻脚踝扭伤的疼痛
    关于脚踝不得不说的各种事
    电影发烧友必备知识-720P、1080P、4K的区别
    有什么相见恨晚的小知识?
    男生有钱到底有多重要?
    es6学习笔记5--promise
    es6学习笔记4--数组
    js设计模式总结1
    es6学习笔记3--解构和对象
  • 原文地址:https://www.cnblogs.com/binliubiao/p/12545313.html
Copyright © 2011-2022 走看看