› 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 · 4510 views
    This topic created in 4649 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   ·   Privacy   ·   Solana   ·   2530 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 12:30 · PVG 20:30 · LAX 05:30 · JFK 08:30
    ♥ Do have faith in what you're doing.