LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1914|回复: 8

php无法连接mysql?

[复制链接]
发表于 2006-9-20 12:58:23 | 显示全部楼层 |阅读模式
<?
$host=localhost;
$username=root;
$password="";
$link=mysql_connect($host,$username,$password);

?>


我的系统是有fc3,在装好系统后,php,mysql,apache都有了,现在我用的时候确不可以连接到mysql.

php是好的
<?
phpinfo();
?>

可以正常显示
mysql 现在也启动
现在就是不可以用php连接到mysql
上面如果改成
$link=mysql_pconnect($host,$username,$password) or die ("bad!");
的话,就会显示

bad!


我现在不知道这个是怎么回事,想好好久,就是找不到原因!
 楼主| 发表于 2006-9-20 13:02:01 | 显示全部楼层
在线等...
回复 支持 反对

使用道具 举报

发表于 2006-9-20 15:58:19 | 显示全部楼层
改成

$link=mysql_pconnect($host,$username,$password) or die ("bad!");
echo mysql_error();

再看看结果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-21 13:31:08 | 显示全部楼层
谢谢  yejr

前面的问题是因为/var/lib/mysql/mysql.sock这个文件不在,我在/tmp下找到了.我开始把/tmp 下的mysql.sock这个文件ln 到了/var/lib/mysq/下,可是还是不可以用.
最后,我在网上找到这样的一个回答
在进行数据库连接 的时候 ,把localhost 改成  127.0.0.1.
因为mysql不支持sock的连接 ,要用tcp进行连接. 于是我把localhost改在了 127.0.0.1,现在现在我可以很正常的使用的我的mysql了.

可是我想知道为什么我的mysql不支持sock连接,必须用127.0.0.1.

在我的/etc/hosts  中用
127.0.0.1       localhost
这一项!

我怎样和可以把127.0.0.1改回来?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-21 13:32:11 | 显示全部楼层
<?
$host=127.0.0.1;
$username=root;
$password="";
$link=mysql_connect($host,$username,$password);

?>

也就是这样我就可以进行连接!
回复 支持 反对

使用道具 举报

发表于 2006-9-21 14:11:08 | 显示全部楼层
mysql连接时,如果指定host为localhost的话,就会采用unix的socket方式连接,因此就会自动查找mysql.sock文件,可以修改php.ini的mysql.default_socket配置,指向mysql.sock真正所在位置即可。
如果采用127.0.0.1方式连接,则就是tcp/ip连接了,相较前者比较慢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-21 14:17:43 | 显示全部楼层
我修改过了php.ini,也修改过/etc/my.cnf  但都没有用
最后没有办法,我才把localhost改成127.0.0.1.
我不知道这个是怎么回事.
回复 支持 反对

使用道具 举报

发表于 2006-9-22 09:09:49 | 显示全部楼层
你改完不会没重启apache吧
并且要保证你改的是正确的配置文件所在
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-22 09:24:22 | 显示全部楼层
重启过的.不过现在习惯了.
现在我还是用的127.0.0.1
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表