无法通过 phpMyAdmin 访问数据库

Posted

技术标签:

【中文标题】无法通过 phpMyAdmin 访问数据库【英文标题】:Can't access database through phpMyAdmin 【发布时间】:2013-08-04 08:38:24 【问题描述】:

基本上,我的 config.inc.php 文件有问题。但我会描述事件的顺序,以防我弄坏了我不知道的其他东西。

我已经在 phpMyAdmin 中建立了一个数据库,我已经在 localhost 上使用了几个月。它是用 XAMPP 安装的。根据XAMPP/xamppfiles/phpMyAdmin/README 文件,它是phpMyAdmin Version 3.5.7

有一段时间,我离开了['controluser'] = 'pma' and ['controluserpass'] = 'pmapass'。几周前,我更改了这些值,但这显然造成了一个问题,因为 phpMyAdmin 开始向我显示

“配置中定义的 controluser 连接失败”

一直警告。尽管如此,我仍然能够做我需要做的一切;所以我一直在使用我的数据库。

昨天我不得不终止一个持续了 8 多个小时的查询。在那之后,phpMyAdmin 似乎加载其他数据库和表有点慢。所以我打开 XAMPP 并按下 mysql 的停止按钮。显然,这个按钮不再为我停止 MySQL。图标只是像在思考一样旋转和旋转。所以,到今天为止,我一直在直接从终端停止和启动 MySQL,而不是通过 XAMPP 控制界面。

因为我看到了针对 controluser 的警告,所以我决定重写 config.inc.php 文件来解决存在的任何问题。不幸的是,我只会让事情变得更糟。现在我根本无法访问我的数据库。

我今天花了 5 个小时研究如何设置我的 config.inc.php 文件,但我仍然无法访问我的数据库。过去,我使用“配置”选项设置它,而不必输入密码。理想情况下,我更喜欢密码安全性。但在这个阶段,我很乐意重新获得对我的数据库的访问权限。

现在,localhost/phpmyadmin 进入登录页面,默认为“用户名”输入“root”。但我似乎无法登录。根据我对 config.inc.php 所做的调整,有时“用户名”默认为乱码;有时会出现错误消息而不是登录。无论我输入什么密码,phpMyAdmin 都不会接受:

2002 无法登录 MySQL 服务器

其他时候,我收到此错误:

2002 - 无法通过套接字连接到本地 MySQL 服务器 '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' (2) 服务器 没有响应(或本地服务器的套接字不正确 配置)。

我试过来回切换

$cfg['Servers'][$i]['auth_type'] = 'cookie'

$cfg['Servers'][$i]['auth_type'] = 'config'

之间

$cfg['Servers'][$i]['connect_type'] = 'tcp'

$cfg['Servers'][$i]['connect_type'] = 'socket'

之间

$cfg['Servers'][$i]['AllowNoPassword'] = false

$cfg['Servers'][$i]['AllowNoPassword'] = true

之间

$cfg['Servers'][$i]['host'] = 'localhost'

$cfg['Servers'][$i]['host'] = '127.0.0.1'

似乎没有任何东西可以访问我的数据库。

目前,我正在登录屏幕并出现此错误:

2002 无法登录 MySQL 服务器

我应该改变什么?下面是我的 config.inc.php 文件:

<?php

$cfg['blowfish_secret'] = '89x7a3f';

$i = 0;

$i++;

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['AllowRoot'] = true;

$cfg['Servers'][$i]['connect_type'] = 'tcp'; 

$cfg['Servers'][$i]['compress'] = true;

$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'pass';

// $cfg['Servers'][$i]['controlhost'] = '';

$cfg['Servers'][$i]['controluser']   = 'pma';
$cfg['Servers'][$i]['controlpass']   = 'pmapass';

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';

//$cfg['DefaultConnectionCollation'] = 'utf8_general_ci';

$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';

// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

$cfg['DefaultLang'] = 'en';


?>

【问题讨论】:

我继续更改 config.inc.php 中的各种设置,但没有成功。但是我注意到此错误消息指示的目录中没有 mysql.sock 文件:“#2002 - Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql. sock' (2) 服务器没有响应(或本地服务器的套接字配置不正确)。” ***.com 上的其他人报告了类似的问题,但没有人给出答案:***.com/questions/5530215/mysql-problem-no-mysql-sock 如果我尝试通过 XAMPP Control 关闭 MySQL 并等待足够长的时间,我会收到以下错误消息:“正在关闭 MySQL....... .................... 错误!” 在终端 /applications/xampp/xamppfiles/bin/mysqladmin 版本中出现错误:'无法通过套接字连接到本地 MySQL 服务器'/Applications/XAMPP/xamppfiles/var/mysql/mysql. sock' (2)' 检查 mysqld 是否正在运行并且套接字:'/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' 存在!同时,localhost/phpmyadmin 将我带到带有我所有数据库和表的屏幕。在重新启动计算机之前,它进入了登录屏幕。现在它跳过了,即使我什么都没改变。但是 phpMyAdmin 本身并没有连接到数据库或表。 【参考方案1】:

如果您只需要访问您的数据库并且您知道您的登录凭据,请尝试使用管理员:

http://www.adminer.org/

这只是您放入 Web 服务器的单个 PHP 文件,并且没有 phpMyAdmin 的安全漏洞历史记录。我们已经用 MySQL 和 Postgres 上的 adminer 替换了所有 phpMyAdmin 安装,效果很好。

【讨论】:

谢谢,但我喜欢 phpMyAdmin。我只需要恢复访问权限。 如果 phpMyAdmin 是唯一损坏的东西,那么只需重新安装它。 我不确定整个 phpMyAdmin 是否已损坏。这可能只是 config.inc.php 文件的问题。昨天一切正常,已经好几个月了。我宁愿不必重复重新安装软件,因为这就像使用大锤推入图钉一样。此外,它可能会导致意外的数据丢失。 phpMyAdmin 只是一个管理套件。您可以从命令行访问您的 MySQL 服务器吗?您的 MySQL 服务器是在侦听套接字还是 IP? mysql -u root -p'rootpass' 如果你能找到默认的 config.inc.php 文件,你就可以使用它。 我在终端收到这个错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【参考方案2】:

在花了 2 天时间尝试了任何人在网上发布的所有内容和任何内容之后,我解决了这个问题。这并不意味着我知道问题是如何发生的,或者如何防止它再次发生,或者解决方案为什么有效,或者它意味着什么。但这是我发现的,也是我解决问题的方法。

我注意到当我在终端中输入以下内容时

locate mysql.sock

我得到了一个令人惊讶的结果:

/private/var/mysql/mysql.sock

我期待 mysql.sock 的文件路径不同。网上的其他人通过使用两个文件路径之间的符号链接解决了类似的问题。就我而言,整个问题都通过终端中的一个命令解决了:

ln -s /private/var/mysql/mysql.sock /Applications/xampp/xamppfiles/var/mysql/mysql.sock

现在我可以毫无问题地编辑我的 config.inc.php 文件了。另外,我现在可以通过 XAMPP Control 停止 MySQL。最重要的是,我可以通过 phpMyAdmin 再次访问我的数据库。

所以我的问题已经解决了 99%。不过,让我有点困惑的是:在“关系视图”中,我曾经看到两列——一列用于外键,另一列用于表内部的键。现在我只看到外键。所以我想知道需要在 config.inc.php 中更改什么来重新获得另一个选项,我相信我至少在一个表中使用过。

【讨论】:

以上是关于无法通过 phpMyAdmin 访问数据库的主要内容,如果未能解决你的问题,请参考以下文章

phpmyadmin该怎么使用呀? 我的linux系统是kali,已经装了Apache.和phpm

我无法使用 springboot 连接到我的 mysql 数据库我使用相同的密码和名称与 phpmyadmin 连接得很好

phpmyadmin 不会验证 mysql 帐户 - 无法登录 phpmyadmin

phpMyAdmin无法缓存模板文件,所以会运行缓慢。

WAMP 错误:禁止您无权访问此服务器上的 /phpmyadmin/

WAMP 错误:禁止您无权访问此服务器上的 /phpmyadmin/