一直用apt-get安装mysql,最近没事,下了个5.5.18版编译安装,却发现用localhost无法连上,但127.0.0.1却可以,求指点。
附上编译参数:
php:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-freetype-dir=/usr/local --with-iconv-dir=/usr/local --enable-gd-native-ttf --enable-gd-jis-conv --with-gd=/usr/local --with-libxml-dir=/usr/local --with-mhash=/usr/local --with-mcrypt=/usr/local --with-openssl=/usr/local --with-curl=/usr/local --with-curlwrappers --enable-bcmath --enable-wddx --enable-calendar --enable-mbstring --enable-ftp --enable-zip --enable-sockets
localhost 是走 socket 127.0.0.1 是走 3306端口 确保 my.cnf 里这俩的设置是ok的 还有就是看看是不是防火墙拦住了。
linux下,mysql的localhost默认是指unix socket,看看mysql的配置文件,在mysqld那一部分你的mysqld打开的unix socket放在哪里,一般是/tmp/mysql.sock之类的,再看看mysql(客户端)默认是去哪儿找unix socket(看看/etc/mysql.conf的配置,mysql那一部分中默认unix socket的路径,实在不行对mysqld用lsof,对mysql用strace看看丫的究竟open调用打开哪个文件去了),这两个如果对不上,那就连不上。
127.0.0.1对mysql来说指的是tcp socket,一般没问题。
使用mysql -uroot -p 或 mysql-uroot -p -h localhost 会默认去读/var/lib/mysql/**.socket 文件,肯定找不到的,因为你编译之后指定的目录为: /usr/local/mysql
阅读(2747) | 评论(0) | 转发(0) |