MySQL删除袜子文件,并抱怨它的权限

这是一个今天真正让我疯狂的问题:

基本上,我从源码(在A​​RM机器上的Ubuntu 9.04上的MySQL 5.1.14)编译MySQL,这是我试图运行它时发生的事情:

/etc/init.d/mysql start Starting MySQL.. * Manager of pid-file quit without updating file. 

挖掘错误日志,这里是我所看到的:

 110826 18:00:21 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var 110826 18:00:22 [ERROR] Can't start server : Bind on unix socket: Permission denied 110826 18:00:22 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ? 110826 18:00:22 [ERROR] Aborting 110826 18:00:22 [Note] /usr/local/mysql/libexec/mysqld: Shutdown complete 110826 18:00:22 mysqld_safe mysqld from pid file /usr/local/mysql/var/Serv.pid ended 

所以这是我试图做的:

 touch mysql.sock chown mysql:mysql mysql.sock chmod 1777 mysql.sock 

一切似乎都很好:

 ls -la | grep mysql.sock -rwxrwxrwt 1 mysql mysql 0 2011-08-26 18:02 mysql.sock 

但是,猜测什么,每次我尝试重新启动mySQL,同样的错误发生,似乎由于某种原因,袜子文件已经消失。

我以root身份运行整个过程,所以权限不应该成为问题。

任何build议? 谢谢!

chmod 1777 /tmp试。

你真的不应该手动创build这个文件,这不是一个普通的文件,这是一个有名的套接字,它应该列在ls输出类似srwxrwxrwx 1 mysql mysql 0 Aug 20 23:49 mysql.sock= 。 你确定另一个mysqld没有启动在同一个套接字?

Ubuntu是否设置为使用SELinux,SMACK或AppArmor等安全框架,需要对其进行修改以允许您的自定义mysql实例运行? 数据库文件是否需要作为mysql拥有的mysql用户拥有的权限在运行时会放弃root权限?

作为一个侧面说明,你尝试创build一个套接字文件是不正确的,你已经创build了一个不是套接字的常规文件,你需要使用mksock在文件系统中创build一个套接字文件。