zoukankan      html  css  js  c++  java
  • mysql -h localhost和mysql -h 127.0.0.1的区别

    今天早上同事说MySQL root账号登录不上了。我试了一下 
    #mysql -u root -p 
    提示”Access denied for user ‘root’@’localhost’ (using password: YES)”

    因为年后有同事离职,我第一反应是谁修改了root密码?按照忘记root密码来重置一下密码: 
    #/etc/init.d/mysql stop 
    #mysqld_safe –skip-grant-tables & 
    #mysql -uroot -p 
    mysql>update mysql.user set password=password(‘mypassword’) where user=’root’; 
    mysql>flush privileges; 
    mysql>quit

    用新密码还是无法登录,提示跟上面一样。换一个非root账号登录,查看一下user表: 
    mysql> select user,host from user; 
    +———–+———+ 
    | user   | host | 
    +———–+———+ 
    | root  | 127.0.0.1 | 
    | night | % | 
    +———–+———+

    怀疑默认的localhost没有映射到127.0.0.1?试试#mysql -u root -p xxxx -h 127.0.0.1,果然可以登录。 
    之前配置数据库的同学没有给’root’@’localhost’和’root’@’ip’授权。 
    grant all privileges on . to ‘root’@’localhost’ identified by ‘mypassword’ with grant option; 
    grant all privileges on . to ‘root’@’118.192.91.xxx’ identified by ‘mypassword’ with grant option;

    再查询一下用户表: 
    这里写图片描述 
    然后#mysql -u root -p xxxx,登录成功!

    查了一下mysql -h localhost和mysql -h 127.0.0.1的区别,通过localhost连接到mysql是使用UNIX socket,而通过127.0.0.1连接到mysql是使用TCP/IP。看看状态: 
    mysql -h localhost > status 
    Connection id:     639 
    Current database: mysql 
    Current user:   root@localhost 
    SSL:           Not in use 
    Current pager: stdout 
    Using outfile:        ” 
    Using delimiter:    ; 
    Server version:     5.6.15-log Source distribution 
    Protocol version: 10 
    Connection:    Localhost via UNIX socket

    mysql -h 127.0.0.1 > status 
    Connection id:     640 
    Current database: mysql 
    Current user:   root@localhost 
    SSL:           Not in use 
    Current pager: stdout 
    Using outfile:        ” 
    Using delimiter:    ; 
    Server version:     5.6.15-log Source distribution 
    Protocol version: 10 
    Connection:   127.0.0.1 via TCP/IP

    解决方法
    在my.cnf的[mysql]区段里添加

    protocol=tcp

    保存重启MySQL,问题解

    root@% 表示所有访问都可以

    root@localhost 表示localhost 可以访问

  • 相关阅读:
    02作业
    作业01
    10-C++远征之模板篇-学习笔记
    9-C++远征之多态篇-学习笔记
    8-C++远征之继承篇-学习笔记
    C++远征之封装篇(下)-学习笔记
    6-C++远征之封装篇[上]-学习笔记
    C++远征离港篇-学习笔记
    4-c++教程起航篇-学习笔记
    Linux C语言结构体-学习笔记
  • 原文地址:https://www.cnblogs.com/zengkefu/p/4991287.html
Copyright © 2011-2022 走看看