Home >Database >Mysql Tutorial >Can’t connect to local MySQL server through socket

Can’t connect to local MySQL server through socket

WBOY
WBOYOriginal
2016-06-07 16:37:211310browse

问题描述 php通过localhost连接本地数据库的时候无法连接 问题分析 php以localhost方式连接本地数据库是通过socket连接的,所以必须要找到mysql对应的socket文件。php通过mysql,mysqli,pdo_mysql三种不同库以localhost方式连接mysql会去读php.ini文件里面对

选区_016

问题描述

php通过localhost连接本地数据库的时候无法连接

问题分析

php以localhost方式连接本地数据库是通过socket连接的,所以必须要找到mysql对应的socket文件。php通过mysql,mysqli,pdo_mysql三种不同库以localhost方式连接mysql会去读php.ini文件里面对应的设置default-socket 。我的php和mysql都是编译的方式安装的,当时没有指定mysql的socket文件的位置,mysql生成该文件的位置和php里面的默认值(/tmp/mysql.sock)设置不一样,从而导致二者之间无法通行。

解决方法

1.通过IP地址进行连接。例如mysql_connect(‘127.0.0.1′,’root’,”);

2.明确指定mysql的socket文件地址。

首先找到mysql的socket文件地址

sudo find / -name mysqld.sock或者

echo “show variables” | mysql -uroot -ppassword| grep “socket”

返回mysql的socket文件地址如下
/run/mysqld/mysqld.sock

然后在php.ini文件里面一下三个地方做出修改

mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket

3.修改my.cnf中socket ? ? ? ? ?= /var/run/mysqld/mysqld.sock(好几个地方都有这个参数,不建议修改)

4.做软链接

ln -s?/var/run/mysqld/mysqld.sock?/tmp/mysql?.sock

毫无疑问,第一种方式最简单

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn