黑帽联盟

 找回密码
 会员注册
查看: 1873|回复: 0

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

[复制链接]

293

主题

18

听众

955

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    奋斗
    2023-10-26 13:13
  • 签到天数: 358 天

    [LV.8]以坛为家I

    首先介绍下昨天我在虚拟机里面做了个实验,利用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




    这是鄙人之前写的,还算实用,希望能给你带来帮助
    您需要登录后才可以回帖 登录 | 会员注册

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