php通过localhost访问mysql.sock

五 9th, 2009

我们经常编译mysql会指定prefix,把生成的bin,lib这些目录到指定位置,或又指定数据目录等。

那我们就需要在my.cnf修改相关选项,如basedir,datadir等,若要使php等外部程序在本地通过localhost访问mysql,则需再指定mysql.sock存放的位置,使用–sock启动选项来指定。注意,如果用127.0.0.1连,则不关心是否有mysql.sock,因为127.0.0.1已经不再使用本地socket方式了,而是通过tcp/ip方式。但效率上来说,肯定是localhost更好了。我们通常在php中出现ERROR 2002: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2),也就是无外两个原因,要么mysql未启动,要么mysql.sock没有或没在/tmp/中,如果mysql.sock在另外路径,也可以在mysql_connect时指定$dbhost = ‘localhost:/some/path/mysql.sock’;

以下是我启动mysql的选项,将其放入rc.local,使其随系统自动启动

mysqld_safe –user=mysql –datadir=/data/server/mysql-5.1/var –basedir=/data/server/mysql-5.1 –socket=/tmp/mysql.sock &

标签:
目前还没有任何评论.
;) :| :x :twisted: :roll: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :arrow: :P :D :?: :? :) :( :!: 8O 8)

Spam Protection by WP-SpamFree