无法启动 phpMyAdmin。不断收到 #2002 套接字错误
Posted
技术标签:
【中文标题】无法启动 phpMyAdmin。不断收到 #2002 套接字错误【英文标题】:Can't start phpMyAdmin. Keep getting the #2002 socket error 【发布时间】:2012-08-21 11:55:54 【问题描述】:在过去的 12 个小时里,我一直在尝试设置 mysql 和 phpMyAdmin,但没有任何成功。是的,经过数小时的谷歌搜索后,我知道这是一个常见问题,我已经阅读了有关 *** 的类似查询,但仍然无法提供解决方案.....
我已经尝试了一切 - 从改变
$cfg['Servers'][$i]['port']
在config.inc.php
文件中转至3306
、127.0.0.1
....
在 config.inc.php
文件中键入套接字路径 - tmp/mysql.php
和 /var/mysql/mysql.sock
。
我尝试更改 my.cnf 文件和 php.ini 中的套接字路径....但我一直收到相同的错误:
#2002 - No such file or directory
The server is not responding (or the local server's socket is not correctly configured).
我正在使用 MySQL (5.1.65)、PhpMyAdmin (3.5.2.2) 和 PHP (5.3.8)。
【问题讨论】:
发布您的config.inc.php
代码..
再次检查mysql是否启动。
可能与***.com/questions/4219970/…有关
重启 MySQL。 OSx:sudo /usr/local/mysql/support-files/mysql.server restart
,Linux:sudo service mysql start
(旧版本:sudo /etc/init.d/mysql start
)
【参考方案1】:
我最近在 Mac OS Sierra 上也遇到了这个问题。 Apache 服务器正在工作,但 mysql 没有。在寻找解决方案后,阅读了很多帖子,我找到了这个解决方案。它奏效了!
解决方案是导航到 mysql 文件夹,在我的例子中,
/Applications/MAMP/db/mysql56/
并删除文件夹以外的所有文件。然后重新启动 MAMP。
【讨论】:
这对我有用,而killall -9 mysqld
没有。我记得它发生在系统崩溃之后没有干净地终止。
我实际上只需要 rm ib_logfile*
(在 mysql 目录中;我还移动到备份子文件夹而不是硬 rm)。如果我删除了ibdata1
,我发现数据库以某种方式损坏 - mysqld 启动并且在 phpMyAdmin 中我可以看到左侧面板中列出的所有表,但不在主面板中,也无法访问任何表。当ibdata1
恢复并且mysqld 再次重新启动时,一切恢复正常。【参考方案2】:
-
退出 MAMP
打开终端
类型:killall -9 mysqld 重启 MAMP
【讨论】:
发生这种情况的原因和解决方案有多种。 @axelbrz 我很高兴能帮上忙。 这也对我有用。我们能否解释一下这会起作用的原因@andrewoodleyjr 吗?【参考方案3】:我遇到的问题是因为 PHP 试图通过 UNIX 套接字而不是 TCP 进行连接。这类似于这个错误:Error when connecting to MySQL using PHP/PDO
首先,确保你有一个用于 mysql 的 my.cnf 配置,然后添加你的默认套接字位置:
[mysqld_safe] socket = /tmp/mysql.sock
接下来在你的 php.ini 中,让 PHP 知道它在哪里:
mysql.default_socket = /tmp/mysql.sock
【讨论】:
确保您编辑的是 php.ini 而不是 php.ini.default。【参考方案4】:由于您没有提到 MAMP,我假设您没有使用它,因此这是手动安装,但它可能也适用于 MAMP。
根据我的经验,这是由您的 mysql 的套接字变量引起的。默认情况下,MySQL 使用 /tmp/mysql.sock。
您可以通过登录 MySQL 并执行操作来获取 MySQL 套接字变量
show variables like '%socket%'
这将显示套接字文件的位置。
现在,创建一个 php phpinfo() 文件并在 mysql 或 mysqli 部分下查找 mysql.default_socket。我的是/var/mysql/mysql.sock。这表明 PHP 正在与 mysql 使用的位置不同的位置查找文件。
假设你有相同的值,打开新终端并输入
cd /var
mkdir mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock
这将创建一个指向 PHP 正在检查的位置内的 mysql 套接字文件的链接。
PHPMyAdmin 现在应该可以工作了。
【讨论】:
【参考方案5】:检查配置文件:
/* $cfg['Servers'][$i]['host'] = 'localhost'; */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['compress'] = false;
重启 MySQL:
操作系统:sudo /usr/local/mysql/support-files/mysql.server restart
Linux:sudo service mysql start
(老linux:sudo /etc/init.d/mysql start
)
【讨论】:
【参考方案6】:在 Windows 7 Ultimate、AppServ 上遇到此问题。 只需重新加载 SQL 和 Apache(但您需要重新加载它们,仅重新加载 Apache 不起作用)。
PHPMyAdmin 4.6.6 服务器:Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 服务器版本:5.7.17-log - MySQL 社区服务器 (GPL) PHP:5.6.30【讨论】:
【参考方案7】:如果您使用的是自制软件,请重新启动 mariadb。我也遇到了同样的问题,在停止并启动 mariadb 后它又开始工作了。
brew services restart mariadb
【讨论】:
【参考方案8】:我在运行 High Sierra 的 macbook pro 上使用 MAMP,并且 就我而言,我尝试了以上所有方法,但它仍然对我不起作用,所以我做了以下操作:
-
查找 MAMP 的安装位置,更具体地说,查找位于“/Applications/MAMP/bin/phpMyAdmin”中的“config.inc.php”文件。
在我们触摸之前备份(即在 Mac 上,右键单击并复制)“config.inc.php”文件。您可以调用或重命名它“config_old.inc.php”
在您喜欢的 IDE 或文本编辑器中打开文件。
-
查找以下行;
i) $cfg['Servers'][$i]['host']
ii) $cfg['Servers'][$i]['port']
iii) $cfg['Servers'][$i]['socket']
更改自:
$cfg['Servers'][$i]['host'] = 'localhost';
到:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
更改自:
$cfg['Servers'][$i]['port'] = '3306';
/这可能是您的默认设置。只需从您的 MAMP 安装首选项中查看,按 CMD + 并确认您指定的端口号。就我而言,我已将其更改为 8889。/
到:
$cfg['Servers'][$i]['port'] = '8889';
再次取决于您安装 MAMP 的位置或更具体的 mysql。
更改自:
$cfg['Servers'][$i]['socket'] = 'some_folder_path or EMPTY';
到:
$cfg['Servers'][$i]['socket'] = '/Applications/MAMP/Library/bin/mysql/mysql.sock';
修改后,在浏览器中保存并刷新。
为我工作。希望这可以帮助。干杯。
【讨论】:
【参考方案9】:检查mysql-server
是否已经安装,如果没有
sudo apt-get install mysql-server
【讨论】:
-1
因为apt-get
例程适用于 debian 系统;这个问题被分配了一个macos
标签。问题中也明确说明了正在使用的MySQL版本。以上是关于无法启动 phpMyAdmin。不断收到 #2002 套接字错误的主要内容,如果未能解决你的问题,请参考以下文章
PhpMyAdmin - 错误无法在没有错误的情况下启动会话:如何修复?