最近在使用linux上进行本地登录时,发现既然无法正常登录,报如下错误信息:
[root@xxxx~]#mysql-hlocalhost-uroot-p-P3306
Enterpassword:
ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)
分析:使用mysql--verbose--help进行分析,才发现原来port和socket对应的值都为0或者为空,也就是默认参数都没有。
[root@UHDEV013~]#mysql--verbose--help|grepsocket
--protocol=nameTheprotocoltouseforconnection(tcp,socket,pipe,
-S,--socket=nameThesocketfiletouseforconnection.
ThebuffersizeforTCP/IPandsocketcommunication.
socket
[root@xxxxx~]#mysql--verbose--help|grepport
-P,--port=#Portnumbertouseforconnectionor0fordefaultto,in
port0
而mysql登录时,是需要从配置文件中查找相关的参数,然后才能取到默认参数的,参数文件的位置如下:
对于直接使用在命令行使用-P追加的参数,为何管不用,目前我也不知道什么原因。
[root@UHDEV013~]#mysql--verbose--help|grepmy.cnf
orderofpreference,my.cnf,$MYSQL_TCP_PORT,
/etc/my.cnf/etc/mysql/my.cnf/usr/haier/mysql/etc/my.cnf/usr/haier/mysql/my.cnf~/.my.cnf
解决方法:
在/etc/my.cnf文件中,在[client]中添加socket参数即可,只添加port参数不管用。原因目前不清楚。
|