admin 发表于 2016-11-6 02:08:41

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

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


解释一下:我的数据库服务是启动的,如下截图:


还有我在本地也能登录服务器,如图:


那么问题来了,是什么原因呢?于是我用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';

再次登录数据库,又出现了问题:


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

到这里主要的问题就来了


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


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

再看配置文件如下:


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';

最后在重启数据库服务,service mysql restart

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


解决方法:
打开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 数据库名称


测试:





这是鄙人之前写的,还算实用,希望能给你带来帮助
页: [1]
查看完整版本: phpmyadmin连接mysql数据库常见的错误-定位原创