Cant's connect to local MySQL server through socket 'tmpmysql.sock'

         前些日子装了个MySQL,也没利用它写过什么程序。今天碰巧有个小程序要利用数据库,正好想试用一下。在这方面我是个十足的菜鸟,啥都别说先启动吧!

 

半天没反应,什么情况?按理说Starting MySQL…后面应该有个[ok]的啦,你怎么不o一下呢?

换种方式接着来(用service mysql start命令启动MySQL时默认情况下也是执行./mysqld_safe --user=mysql &,也就是用mysql帐户在后台启动数据库,这样做相对于利用root帐户启动来说更安全!)

此时仍然没有成功,下面的测试可以作证,诺:

一旦启动mysql服务器,是可以用mysql帐户登陆数据库的,然而弹出以上的erro,小小的纳闷了一会儿。/tmp/mysql.sock这个是什么东东,作什么用的呢? 经过在网上一翻查找了解到,mysql.sock是个套接字文件(sockets),这种文件一般用在网络上的资料套接,mysqld守护进程生成了这个文件,其他与mysql相关的程序想使用mysql,估计就是通过这个文件了。这种特殊文件即使是最高权限的root用户,也是不能查看不能编辑的,有点像档案标志是管道文件。难怪此时到到/tmp目录下去找根本就不存在这个文件,原来是在mysqld进程启动之后自动创建的!此外还得提一下另外一个文件/etc/my.cnf,它是数据库的配置文件,进入my.cnf这个文件可以发现其中一部分代码是这么写的: 

正好印证了上面提到的mysql.sock文件,其实my.cnf这个文件也不是必需的,大可删掉。除非你要作做优化方面的工作。但既然来了,就不能乱写!了解了这些可是这并不能解决我的问题呀,怎么办?俺来脾气了,调出所有与带mysql字样的进程(ps –ef | grep mysql*),一把火通通删掉(kill id)。重新启动MySQL,竟然成功,也能顺利登陆数据库服务器了!怎一个邪字了得!

 

 

posted @ 2012-04-01 15:43  吹个球  阅读(583)  评论(0编辑  收藏  举报