为什么php PDO在连接到远程托管的mysql数据库时使用与mysql_conn
发布时间:2020-12-13 16:18:50 所属栏目:PHP教程 来源:网络整理
导读:我在两个不同的服务器上使用了 mysql数据库和php / apache:让我们说hostphp.domain.com和hostmysql.domain.com. 在mysql服务器上,我设置了一个用户“my_user”,其权限是从特定主机“hostphp.domain.com”连接到“my_database”db. 当我使用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_pass'); if (!$conn) { die('Could not connect: ' . mysql_error()); } 解决方法
您已使用mysql_connect成功连接到主机,但没有错误,因为您没有尝试选择数据库.
您的用户可能无权访问您的数据库. 尝试运行mysql_select_db(“my_database”);连接到主机后,您应该得到相同的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |