php - 无法连接MySQL数据库,套接字错误

标签 php mysql sockets database-connection

我是 php 新手,在尝试在我的一个页面上建立与我在网站 phpMyAdmin 页面上设置的数据库的连接时。

我收到此错误:

"Database connection failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (46) (2002)"

我不知道套接字是什么,也不知道为什么它试图访问看起来像临时文件的内容,所以我什至不知道在哪里解决这个问题。

我用来建立初始连接的代码是这样的:

<?php
define("DB_SERVER", "localhost");
define("DB_USER", "xxxx");
define("DB_PASS", "xxxx");
define("DB_NAME", "tester");

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

// Test if connection occurred.
if(mysqli_connect_errno()) {
    die("Database connection failed: " .
        mysqli_connect_error() .
        " (" . mysqli_connect_errno() . ")"
    );
}
?>

我知道我应该有权访问 MySQL 数据库,因为我登录并自己创建了它们。

我之前在计算机上使用 WAMP 设置了页面,一切正常。

当我尝试在网站上启用它时,我遇到了此错误。

任何帮助都会很棒!!

最佳答案

尝试使用127.0.0.1而不是localhost。

如果这不能解决问题,并且您拥有服务器的 root 访问权限,请尝试以下命令

service mysql restart

重新启动mysql服务器。

第一个选项可能会起作用。再次强调,如果您拥有服务器的 root 访问权限,则应该更改 mysql 配置以支持套接字,因为它比 TCP-ip 连接更好。

关于php - 无法连接MySQL数据库,套接字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928438/

相关文章:

linux - nginx uWSGI 连接到 unix 套接字失败

Java 信使套接字

c - 使用 `read` 和 `epoll` 异步读取套接字

php - 访问 $_POST 或其他超全局变量时是否可能触发错误?

php - 如何将用户可自定义的高级搜索转换为 SQL 查询?

mysql - 如何使 IF 语句在 SQL 级别检查是否为空?

php - 仅获取选中的复选框值

php - 为每个用户自动生成内容

php限制事件数据库条目

Linux 上的 MySQL 工作台