我试图在我的Mac上安装普通论坛,为此,我从MySQL命令行创建了一个数据库和一个用户:
mysql> CREATE DATABASE vanilla;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'vanilla_user3'@'localhost' IDENTIFIED BY 'vanilla_password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'vanilla_user3'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)因此,我尝试使用以下代码进行连接:
$con=mysqli_connect("localhost","vanilla_user3","vanilla_password","vanilla");
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}但不幸的是,我说错了
警告: mysqli_connect():(HY000/2002):在第3行的/Users/kramer65 65/Sites/vanilla/info.php中没有这样的文件或目录连接到MySQL:没有这样的文件或目录
知道我哪里出问题了吗?
发布于 2013-11-19 14:37:38
好吧,我刚找到解决办法。问题是主机不应该是localhost,而应该是127.0.0.1。我一直认为localhost和127.0.0.1是一样的,但结果却是不同的。
因此,可能作为对未来用户的提示,总是在有疑问的时候使用ip。
发布于 2016-11-10 13:19:07
我也有同样的问题,但问题与php.ini文件有关。
我必须在/etc/php.ini中编辑这两行(或者您的php.ini位于哪里):
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock重新启动apache服务器,以确保更改得到反映。
sudo apachectl restart发布于 2020-01-26 05:15:23
如果使用docker,使用mysql容器名作为mysql的主机名。例如,如果这是码头撰写文件:
mysqldb:
image: mysql:5.7.22
container_name: mysqlHost
ports:
- "33099:3306"主机名是mysqlHost,端口是3306,而不是33099!
如果不使用docker,docker ps将显示正在运行的容器名称。
https://stackoverflow.com/questions/20073168
复制相似问题