pdo 连接远程mysql_为什么php PDO在连接到远程托管的mysql数据库时使用与mysql_connect()使用的主机名不同的主机名?...

我在两个不同的服务器上使用了

mysql数据库和php / apache:让我们说hostphp.domain.com和hostmysql.domain.com.

在mysql服务器上,我设置了一个用户“my_user”,其权限是从特定主机“hostphp.domain.com”连接到“my_database”db.

当我使用mysql_connect连接到它时,它做对了.但是当我通过php PDO这样做时,我收到此错误:

SQLSTATE[42000] [1044] Access denied for user 'my_user'@'%' to database 'my_database'

我做了一些测试,我发现问题是…… @’%’,mysql拒绝连接,因为“my_user”没有从任何主机连接的权限.

此外,我试图使用错误的密码使用mysql_connect连接以查看错误,我得到了这个:

Could not connect: Access denied for user 'my_user'@'hostphp.domain.com' (using password: YES).

区别在于.. @’%’和… @’hostphp.domain.com’.

所以这是我的问题,为什么php pdo在连接到远程主机时不会声明主机名? (或者做错了).

谢谢,抱歉我的英语.

编辑.

一些代码示例,这不起作用:

try {

$pdo = new PDO(

'mysql:host=hostmysql.domain.com;port=3306;dbname=my_database',

'my_user',

'my_pass'

);

} catch (PDOException $e) {

die($e->getMessage());

}

但是这样可行:

$conn = mysql_connect('hostmysql.domain.com', 'my_user', 'my_pass');

if (!$conn) {

die('Could not connect: ' . mysql_error());

}

最佳答案 您已使用mysql_connect成功连接到主机,但没有错误,因为您没有尝试选择数据库.

您的用户可能无权访问您的数据库.

尝试运行mysql_select_db(“my_database”);连接到主机后,您应该得到相同的错误.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值