OS: Ubuntu 14.04 LTS
php version control : phpbrew
php version : 5.5.10
我ping了localhost,它解析为127.0.0.1 .
这表明我的主机(/ etc / hosts)文件是正确的 .
127.0.0.1 localhost
每当我尝试使用像下面的PHP脚本连接到MySQL时它不起作用并给我错误:没有这样的目录 .
//connect to the database
mysql_connect("localhost","root","password") or die(mysql_error());
但是,当我通过127.0.0.1连接时,它将工作
//connect to the database
mysql_connect("127.0.0.1","root","password") or die(mysql_error());
另外,使用“localhost”登录时我的phpmyadmin不起作用我必须在登录时更改文件以添加127.0.0.1选项 .
如何使用localhost连接MySQL数据库?
3 回答
在许多情况下,
localhost
是一个使用UNIX套接字连接到MySQL服务器进程的提示,其中127.0.0.1
强制TCP连接 . 有时UNIX套接字处于意外的位置,或者根本无法访问,这会导致"file not found"错误 .套接字通常类似于
/tmp/mysql.sock
,或者可能位于其他位置,具体取决于您的分布以及您对其进行了多少定制 .请记住,通过UNIX套接字(根据定义,服务器本地)和TCP的访问由两个不同的规则控制 .
localhost
在GRANT
中指的是UNIX套接字 .%
或某些特定主机名是指通过TCP远程访问 .这个问题的答案是在my.cnf里面
这条线也是
要么
应该是的
这将允许所有连接
PHP仍在尝试使用默认套接字位置 . 如果从/ var / lib / mysql到另一个位置 moved the MariaDB/MySQL folder ,则会出现此问题 . 为了解决这个问题,你必须在/etc/php.ini文件中定义新套接字的位置 .
注意,根据您使用的驱动程序,您可能必须指定pdo_mysql.default_socket =!
为了检查当前目录,请在mysql中运行以下命令: