我是新安装的centos6.2。
在 ssh 部分,我可以使用以下命令访问 mysql:
>mysql -u root -p
>se659;m
然后我就能看到
mysql>
我可以使用任何 mysql 命令,如:show databases;
,,show columns from tableName
等等。
但是当我使用php代码连接mysql时,
<?php
$handle_db = mysql_connect("localhost","root","se659;m")
or die("can not connect Mysql Server");
?>
表明can not connect Mysql Server
我用phpinfo()
我可以看到
我在usr/local/mysql
问题出在哪里?我感觉很困惑#_@
答案1
这里有多个变量在起作用。
- 您在 /usr/local/mysql 中自定义安装了 mysql。这意味着您的 mysql 套接字可能不在 PHP 期望的默认位置。要解决此问题,请确保 mysql 和 PHP 就套接字的位置达成一致。您也可以使用网络套接字。Mysql 配置可能位于 /usr/local/mysql/etc/my.cnf 中
- 如果您想使用网络(非本地套接字)连接,那么必须将 Mysql 配置为允许网络连接。
- Mysql 使用用户名和主机进行权限检查。这意味着“root@localhost”和“root@myhostname”对于 mysql 来说是不同的“用户”。两个 root 用户都必须有密码,并且具有权限才能正常工作。
- 您可能需要使用 mysqli_connect。MySQL 4 和 5 具有不同的密码哈希类型,这使得它们不兼容。PHP 必须使用 Mysql 期望的密码哈希。这可能可以通过 myqli_connect 解决。