• 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 可以访问

  • 相关阅读:
    BOM
    no response from Graphic Screen Painter Exiting
    Windows Mobile 中模拟按键
    C# 获取汉字拼音首字母
    Web Service介绍
    .net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解
    使用JSON加速AJAX(By Sean Kelly)
    Sql字符串操作函数
    一个简单AJAX注册示例
    .Net平台开发的技术规范与实践精华总结
  • 原文地址:https://www.cnblogs.com/zengkefu/p/4991287.html
Copyright © 2020-2023  润新知