你好,当我尝试启动我的mysqld我得到这个错误:
[root@localhost /]# service mysqld restart Stopping mysqld: [ OK ] MySQL Daemon failed to start. Starting mysqld: [FAILED]
主要原因是my.cnf文件找不到我的mysql.sock文件。
[root@localhost /]# mysqladmin -u root -p status mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
当我尝试用以下方式search它时:
sudo find / -type s | grep mysqld.sock
我去拿
find: '/proc/3253/task/3253/fd/5': Bestand of map bestaat niet find: '/proc/3253/task/3253/fdinfo/5': Bestand of map bestaat niet find: '/proc/3253/fd/5': Bestand of map bestaat niet find: '/proc/3253/fdinfo/5': Bestand of map bestaat niet "Bestand of map bestaat niet" == "File or directory don't exists"
我是新来的,所以任何人都可以帮我吗?
太痛苦了! 我偶然发现了同样的问题(在RedHat上),这帮助了我:
service mysqld stop rm -rf /var/lib/mysql/* service mysqld start mysql_secure_installation
希望有所帮助。 祝你好运!
“主要原因是my.cnf文件找不到我的mysql.sock文件。”
不。 “主要原因”是mysqld has not started
,所以没有mysql.sock,任何客户端都不能建立连接。
目前“为什么mysqld failds”是广泛的问题。 MySQL错误日志有“为什么MySQL失败”的原因。 如果你知道mysql错误日志是在哪里,只要打开它,并发送错误消息到你的问题。
但可能我猜你不知道在哪里mysql错误日志是….
确定mysql错误日志的位置
所以,我们需要确定它在哪里。 我们可以猜到某处…但确切的方法是使用strace
$ strace -f > strace.log 2>&1 service mysqld start
现在strace.log有与MySQL Deamon相关的所有系统调用。 用任何编辑器打开strace.log,搜索“err”。在我的情况
[pid 26976] open("/XXX/hostname.err", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
当open()失败时
可能发生open()
失败,常见的错误是
所以你可以找到为什么mysqld无法在'/XXX/hostname.err'中启动。 我们非常感谢您发布错误信息。
PS
我有测试strace
$ strace -f > strace.log 2>&1 mysql.server start
不知道与service mysqld
工作,但没有理由不工作
“我没有得到任何回报:$ strace -f> strace.log 2>&1 service mysqld start”
其实service mysqld start
调用/etc/rc.d/init.d/mysqld start
(假设是CentOS或Fedora)。 所以,你可以试试。
$ strace -f > strace.log 2>&1 /etc/rc.d/init.d/mysqld start
如果你引用的my.cnf
是正确的mysqld文件,打开它并搜索[mysqld]
节。 它看起来如下
[mysqld] user = username port = 1111 basedir = /path/ datadir = /path/data
MySQL错误日志在/path/data
我不是在MySQL的专家,但问题是:
是mysql侦听套接字,在TCP端口或两者?
检查通常在/ etc或/ etc / mysql中的my.cnf配置文件,你会看到这个。 另外,如果它已经作为套接字运行,您将看到套接字的路径。
希望能帮助到你。
问候
从你的文章看来,mysqld启动失败, MySQL Daemon failed to start. Starting mysqld: [FAILED]
MySQL Daemon failed to start. Starting mysqld: [FAILED]
。
检查mysqld是否正在运行service mysqld status
。
配置文件my.cnf正在寻找mysql.sock,你正在寻找mysqld.sock。 两个不同的名字。
谢谢巴马利,真棒的答案。 我检查了我的mysqld.log文件。
它显示了我的MySQL服务不启动的所有原因。 在我的情况下,用户mysql对“/ var / run / mysqld”没有写权限。 我从root用户授予mysql用户权限,它为我工作。
再次感谢! Barmaley
技术设置:
Vagrant (Centos 6.6, MySQL 6.6) on top of MacOS Captain
每当我尝试在Centos上运行mysql时,我都会看到这个问题,我不确定如果这个问题只针对OS和MySQL版本。
如果你打开日志文件,并检查你会看到这样的事情
/ usr / sbin / mysqld:找不到文件'/var/log/mysql-bin.index(Errcode:13 – Permission denied)
该权限被拒绝是因为默认情况下,我们没有写入/ var / log文件的权限,所以我们应该更改用户的权限。 MySQL试图写入/var/log/mysql
bin-log
或relay-logs
。
在更改权限之前,我们需要认识到/ var / log中没有mysql目录,所以我们需要先创建它,然后更改权限。 所以,我这样做了:
mkdir mysql chown mysql: mysql
mysqld应该现在开始工作!