首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的宿主问题

奇怪的宿主问题
EN

Stack Overflow用户
提问于 2012-12-10 14:00:56
回答 1查看 364关注 0票数 2

我花了几个小时试图弄清楚这件事,但没有运气。我在googled上搜索了这个,还搜索了堆栈溢出上的关键字。

所以,我在这里问问题。作为一个面板,有DirectAdmin。

当我输入DirectAdmin并创建MySQL数据库时,它会告诉我“数据库已经成功创建了”。

并告知:“将此数据用于您的脚本”

代码语言:javascript
复制
Host     : localhost (yes, localhost! )
user     : db_user
password : db_password
databse  : db_name

好吧。当我向phpMyAdmin输入这些数据时,它是有效的--用户和密码。我可以使用SQL通过phpMyAdmin操作数据。一切都很好。

当我将这些数据输入到某个脚本时

代码语言:javascript
复制
<?php

$host     = 'localhost';
$password     = 'db_password';
$db           = 'db_name';
$user     = 'db_user';

// I'm aware of PDO and I use this one but PDO isn't installed on my hosting provider
// This is just test to see if connection can be established

if ( ! mysql_connect($host, $user, $password) ){

    die( mysql_error() );
}

所以它告诉我们,“拒绝db_user@localhost使用密码的访问(是的)”!有什么问题吗?!我输入了正确的数据!

然后我尝试使用我的网站的入口,而不是'localhost‘。然后,mysql_error()告诉如下内容:“此主机不允许从mysite.com连接”。

再次-从phpMyAdmin中我可以看到:user-db_user@localhost(这样用户名和主机都不会出错)

问题是:为什么它允许从phpMyAdmin连接,而不允许从自定义脚本连接?

更新1。我试图将port (如@Bondye建议的)和localhost也更改为127.0.0.1。但是得到相同的错误- Access denied for user 'db_user'@'localhost' (using password: YES)

这是MySQL一节,来自PHP.INI

代码语言:javascript
复制
Active Persistent Links  0  
Active Links  0  
Client API version  5.1.53  
MYSQL_MODULE_TYPE  external  
MYSQL_SOCKET  /tmp/mysql.sock  
MYSQL_INCLUDE  -I/usr/local/include/mysql  
MYSQL_LIBS  -L/usr/local/lib/mysql -lmysqlclient  

Param:              Local Value: Master Value: 

mysql.allow_persistent  Off      Off 
mysql.connect_timeout   60       60 
mysql.default_host      no value no value 
mysql.default_password  no value no value 
mysql.default_port      no value no value 
mysql.default_socket    no value no value 
mysql.default_user      no value no value 
mysql.max_links         5        5 
mysql.max_persistent    0        0 
mysql.trace_mode        Off      Off 



System : FreeBSD

我知道PDO和MySQLi,但我不能使用它们。我必须对我正在处理的当前脚本使用旧的mysql_*函数。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2012-12-10 14:27:11

http://php.net/manual/en/function.mysql-connect.php

注意: 每当您将"localhost“或"localhost:port”指定为服务器时,MySQL客户端库将覆盖此内容,并尝试连接到本地套接字(Windows上的命名管道)。如果要使用TCP/IP,请使用"127.0.0.1“而不是"localhost”。如果MySQL客户端库试图连接到错误的本地套接字,您应该设置正确的路径,就像在您的中一样,并将服务器字段保留为空。

您可以考虑或使用mysqli代替(以i结尾以改进)。

代码语言:javascript
复制
Use of this extension is discouraged. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

    mysqli_connect()
    PDO::__construct()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13802446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档