May 8, 2013 - mac    No Comments

mysql localhost vs 127.0.0.1

前几天,再把一个drupal项目导到自己电脑的时候,犯了一个低级错误。解决的过程有点2b,在这里记录一下自己的2b时刻。

一个drupal项目的数据库和站点文件全都导到自己的电脑上后,始终报一个错“No such file or directory”。站点文件的权限也简单粗暴的777了。但始终就是报这个错。上网查了后才知道是mysql.sock这个文件的路径指向不对造成的。需要吧php.ini里3个配置项改对。

首先在终端里执行:

/usr/local/mysql/bin/mysql

这样就进入mysql的命令行模式,然后执行:

status

可以看到
Screen Shot 2013-05-08 at 12.20.08 AM

然后就去修改php.ini的三个配置项

mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket=/tmp/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock

修改好后,重启apache,一切ok。

这样修改后,以后装drupal和wordpress的时候,就都可以用localhost了,不用再用127.0.0.1了。这个时候我才突然意识到,只要把drupal的settings.php里的mysql配置从localhost改成127.0.0.1就好了嘛。

然后上网查了一下localhost和127.0.0.1的区别,顺便记录一下这个知识点。

localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)

localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。

Got anything to say? Go ahead and leave a comment!