MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
foru17
V2EX  ›  MySQL

一个关于 mysql 的奇怪故障

  •  
  •   foru17 ·
    foru17 · Jan 2, 2014 · 4057 views
    This topic created in 4538 days ago, the information mentioned may be changed or developed.
    描述一下自己的情况吧
    1.服务器是centos 6.4 LNMP。
    PHP 5.4.23 (cli) (built: Dec 11 2013 06:48:03)
    mysql Ver 14.14 Distrib 5.6.15, for Linux (i686) using EditLine wrapper

    2.两个程序用到了 mysql,一个是 wordpress,一个是 ghost,有 Phpmyadmin 面板

    现在的问题是

    1.ssh终端下,可以通过 mysql -u root -p,输入密码 mypassword 的方式登录数据库,show dadabaes,use ,show tables 都正常。
    2.phpmyadmin 下,无法使用帐号 root + mypasword 的方式登录,可是通过其他帐号登录。
    a.如果 phpmyadmin 的 config.inc.php下的
    $cfg['Servers'][$i]['host'] = 'localhost';
    则,会出现#2002错误
    b.如果$cfg['Servers'][$i]['host'] = '127.0.0.1';
    则出现#1045错误

    对后台这些不是很熟悉,大家谁能指点一下,现在博客挂了几天了 ╮(╯_╰)╭
    16 replies    1970-01-01 08:00:00 +08:00
    foru17
        1
    foru17  
    OP
       Jan 2, 2014
    通过mysqld_safe --skip-grant-tables &,然后命令行重置 root 帐号为一个新密码后,依旧会出现1045的问题,无法使用 root 帐号登录。
    Sunyanzi
        2
    Sunyanzi  
       Jan 2, 2014
    不知道细节 ... 但是猜想也许是 MySQL 版本兼容的问题 ..? 试试看这样 ..?

    UPDATE `user` SET `password`=OLD_PASSWORD( 'mypassword' ) WHERE `user`='root';
    FLUSH PRIVILEGES;

    然后在 phpMyAdmin 里面用 root / mypassword 登录 ...
    mahone3297
        3
    mahone3297  
       Jan 2, 2014
    2002错误,网上一搜一大堆,你可以看看
    http://jafy00.blog.51cto.com/2594646/693649
    localhost 应该是用sockset连接的,127.0.0.1应该是用ip连接的

    然后1045的话,你也可以网上搜搜,应该是权限的问题

    另外,你也可以看看my.cnf的配置文件,看看是否有bind ip等
    shiny
        4
    shiny  
    PRO
       Jan 2, 2014
    1、你输入的密码应该是 root@'localhost' 的密码。
    2、php5.3+ 连接 localhost 的时候有时候有问题,可能连到了 socket http://cn2.php.net/function.mysql-connect
    「Note:
    只要将 server 指定为 "localhost" 或 "localhost:port",MySQL 客户端库会越过此值并尝试连接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,应该用 "127.0.0.1" 代替 "localhost"。」

    解决办法:
    为 root@'127.0.0.1'设个密码,然后有127.0.0.1连接。
    foru17
        5
    foru17  
    OP
       Jan 2, 2014
    @mahone3297 目前已经搜索了很多,基本上目前网上有的解决方法都试过了,依旧是这个问题,我叫我一个搞后端的朋友帮我看了,他也头疼 ing。
    foru17
        6
    foru17  
    OP
       Jan 2, 2014
    @Sunyanzi 无效,现在我真的是郁闷了
    Sunyanzi
        7
    Sunyanzi  
       Jan 2, 2014
    @foru17 OLD_PASSWORD 无效的话 ... 去掉 OLD_ 前缀试试看 ... 也就是这样 ...

    UPDATE `user` SET `password`=PASSWORD( 'mypassword' ) WHERE `user`='root';
    FLUSH PRIVILEGES;

    另外一种可能性是 localhost 和 127.0.0.1 这两个 root 之前的密码不同 ... 一并刷掉好了 ...
    johnlui
        8
    johnlui  
       Jan 2, 2014 via Android
    可以考虑重装MySQL,注意备份/data
    johnlui
        9
    johnlui  
       Jan 2, 2014 via Android
    会不会是端口的问题?
    tempdban
        10
    tempdban  
       Jan 2, 2014 via Android
    告诉你个事 你没有把centos6.4自带的mysql-client卸掉
    rpm -e mysql-client --nodeps
    然后再重新跑一遍安装lnmp脚本
    rrfeng
        11
    rrfeng  
       Jan 2, 2014
    友情提醒:
    查看一下权限表
    mysql 的『用户名』:user@domain 是一体的,比如 root@localhost 和 [email protected] 其实是不一样的……
    wzxjohn
        12
    wzxjohn  
       Jan 2, 2014
    楼主各位有木有想过PhpMyAdmin有一个配置参数是:
    禁止使用root用户登录。
    horsley
        13
    horsley  
       Jan 2, 2014
    看看是不是有这种账户存在
    xampp就这样
    http://www.huangkeye.cn/wp-content/uploads/2013/01/users.png
    foru17
        14
    foru17  
    OP
       Jan 2, 2014
    @wzxjohn wordpress 帐号用的也是 root ,也无法链接。排除
    tempdban
        15
    tempdban  
       Jan 2, 2014 via Android
    @foru17 大哥您mysql是编译安装么
    fire9
        16
    fire9  
       Jan 3, 2014
    @foru17 可以通过socket,port来连接。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1001 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 18:46 · PVG 02:46 · LAX 11:46 · JFK 14:46
    ♥ Do have faith in what you're doing.