黑帽联盟

 找回密码
 会员注册
查看: 2189|回复: 0
打印 上一主题 下一主题

[mysql] phpmyadmin连接mysql数据库常见的错误-定位原创

[复制链接]

295

主题

18

听众

966

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    开心
    昨天 20:18
  • 签到天数: 372 天

    [LV.9]以坛为家II

    首先介绍下昨天我在虚拟机里面做了个实验,利用Percona Xtrabackup进行备份mysql数据库,但在恢复数据库过程中出现了一点小插曲,今天就出现了如下的错误:
    183610yf71pj3ip1xgfvsx.jpg.thumb.jpg

    解释一下:我的数据库服务是启动的,如下截图:
    183611ostooc1it91op5po.jpg.thumb.jpg

    还有我在本地也能登录服务器,如图:
    183611upucf9c8o0z45qpp.jpg.thumb.jpg

    那么问题来了,是什么原因呢?于是我用phpmyadmin来登录数据库来测试一下是否能登录呢,结果:确实有问题
    刚开始可能出现2002错误,这是由于我的mysql数据库分配远程管理的ip之127.0.0.1,而不是localhost,所以修改下配置文件即可。

    解决方法:
    将config.sample.inc.php复制成config.inc.php
    出现这个错误,表示没有连接到数据库。修改config.inc.php文件,
    代码如下:
    将$cfg['Servers'][$i]['host'] = 'localhost';
    改为$cfg['Servers'][$i]['host'] = '127.0.0.1';


    再次登录数据库,又出现了问题:
    184114o56fz6mz5g7gf93g.jpg.thumb.jpg

    是配置文件权限出现了问题,那么我们就度配置文件的权限查看,不过也是奇葩,我的权限是777,但必须为755才行,可能涉及到安全性问题
    chmod -R 755 phpmyadmin

    到这里主要的问题就来了
    184800n2ke227he2jb2lk5.jpg.thumb.jpg

    确实有问题,数据库连接不上,仔细想了一段时间,才恍然大悟,原来我之前把远程管理mysql数据库用户删除了,现在又重新授权建了一个root,针对是所有主机,密码是admin,
    而以前程序当中的配置文件是root密码连接上的,所以这次不能连接数据库。
    190057e7vowacv61iaywq8.jpg.thumb.jpg

    可以看出127.0.0.1,没有设置密码,所以...

    再看配置文件如下:
    190246b63kzxygvux8pzxv.jpg.thumb.jpg

    127.0.0.1没有授密码,所以连接不上,而且之前的密码是:root

    解决方法:
    打开config/config_global.php
    * $_config['db']['1']['dbuser'] = 'root'; // 用户
    * $_config['db']['1']['dbpw'] = 'admin';// 密码



    还有config_ucenter.php文件


    define('UC_DBPW', 'admin');                                // UCenter 数据库密码
    define('UC_DBNAME', 'ucenter');                                // UCenter 数据库名称

    到这里我心也是碎了,测试的时候,还是出现了错误2002,我对所有主机都授权,包括127.0.0.1,为什么不行呢?
    原因:因为在数据库里面有一个127.0.0.1,没有给它授权,而%代表所有,这里有冲突,所以...

    解决方法:
    删除对于所有主机的授权,单独对127.0.0.1进行授权
    delete from user where host='%';
    mysql> grant all privileges on *.* to 'root'@'127.0.0.1' identified by 'admin';
    192102cqczzysqqsqg7syy.jpg.thumb.jpg
    最后在重启数据库服务,service mysql restart

    我也是无语到家了,还是不行,还是2002错误,后来终于解决了,你们看这篇文章是不是也心碎了啊,但你要知道,看过这篇文章,你收获很多
    原因:127.0.0.1是解析到localhost上的,而localhost上的密码是:fuckyou
    192841f44w4680jt8z6dw8.jpg.thumb.jpg

    解决方法:
    打开config/config_global.php
    * $_config['db']['1']['dbuser'] = 'root'; // 用户
    * $_config['db']['1']['dbpw'] = 'fuckyou';// 密码



    还有config_ucenter.php文件


    define('UC_DBPW', 'fuckyou');                                // UCenter 数据库密码
    define('UC_DBNAME', 'ucenter');                                // UCenter 数据库名称


    测试:

    193028wjzztebu3tttub88.jpg.thumb.jpg



    这是鄙人之前写的,还算实用,希望能给你带来帮助
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部