【发布时间】:2014-10-28 07:15:04
【问题描述】:
我正在使用以下字符串连接到本地主机上的 mysql 数据库(我没有 root 访问权限)。我确实阅读了 Stack Overflow 上的相关帖子。
我在 php 文件中定义了这个:
ini_set('mysqli.default_socket', '/tmp/mysql5.sock');
ini_set('mysql.default_socket', '/tmp/mysql5.sock');
ini_set('pdo_mysql.default_socket', '/tmp/mysql5.sock');
当我使用时:
'mysql:localhost:/tmp/mysql5.sock;dbname='.DB_NAME.';charset=utf8'
或
'mysql:unix_socket:/tmp/mysql5.sock;dbname='.DB_NAME.';'
我知道了
SQLSTATE[HY000] [2002] 没有这样的文件或目录
当我使用时:
'mysql:host=127.0.0.1;dbname='.DB_NAME.';'
我知道了
SQLSTATE[HY000] [2002] 连接被拒绝
任何人都可以看看,非常感谢!!
【问题讨论】:
-
我不知道您为什么尝试使用
ini_set()来设置套接字并使用它们。在您的连接字符串中,您缺少用户名和密码。在你的连接字符串中尝试这样的事情:$pdo = new PDO('mysql:host=localhost;dbname='.DBNAME, 'user', 'password'); -
您的服务器是否已启动?
/tmp/mysq5.sock存在吗?您能否确认您可以使用其他工具连接到它?