操作系统: Ubuntu 14.04 LTS
php版本控制: phpbrew
php版本: 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数据库?
答案 0 :(得分:3)
在许多情况下localhost
提示使用UNIX套接字连接到MySQL服务器进程,其中127.0.0.1
强制TCP连接。有时UNIX套接字处于意外的位置,或者根本无法访问,这会导致“找不到文件”错误。
套接字通常类似于/tmp/mysql.sock
,或者可能位于其他位置,具体取决于您的发布以及您对其进行了多少定制。
请记住,通过UNIX套接字(根据定义,服务器本地)和TCP的访问由两个不同的规则控制。 localhost
中的GRANT
指的是UNIX套接字。 %
或某个特定的主机名是指通过TCP远程访问。
答案 1 :(得分:2)
这个问题的答案是位于
内的my.cnf/etc/mysql/my.cnf
该行是
bind-address = 127.0.0.1
或
bind-address = localhost
应该是
bind-address = 0.0.0.0
将允许所有连接
答案 2 :(得分:2)
PHP仍在尝试使用默认套接字位置。如果将MariaDB / MySQL文件夹从 / var / lib / mysql 移动到另一个位置,则会出现此问题。要解决此问题,您必须在 /etc/php.ini 文件中定义新套接字的位置。
data = 'Im extra <i data-emoji=":)" class="emoji emoji-happy"></i> today! But was like <i data-emoji=":(" class="emoji emoji-unhappy"></i> yesterday.';
console.log(data.replace(/<i.*?data-emoji="(.*?)".*?\/i>/g, '$1'));
注意,根据您使用的驱动程序,您可能必须指定 pdo_mysql.default_socket = !
为了检查当前目录,请在mysql中运行以下命令:
mysqli.default_socket =/newDBLocation/mysql/mysql.sock