mysql var/lib/mysql目录不存在,无法启动mysql服务器。

7

我阅读了许多论坛帖子和有关解决MySQL服务器启动和正常工作问题的解决方案,但目前为止都没有成功。我阅读的许多论坛帖子提到了一个/var/lib/mysql文件夹,一些错误也指向该文件夹,比如当我运行以下命令时:

$ mysqld

在 Mac 上使用终端时,收到以下错误:
2013-06-03 00:40:46 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-06-03 00:40:46 1851 [Warning] Can't create test file /var/lib/mysql/Alexs-MacBook-Pro-3.lower-test
2013-06-03 00:40:46 1851 [Warning] Can't create test file /var/lib/mysql/Alexs-MacBook-Pro-3.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2 - No such file or directory)
2013-06-03 00:40:46 1851 [ERROR] Aborting

2013-06-03 00:40:46 1851 [Note] Binlog end
2013-06-03 00:40:46 1851 [Note] mysqld: Shutdown complete

我已经删除了所有与MySQL相关的内容并重新安装了MySQL,包括从MySQL下载页面上的dmg文件和未解压的tar.gz文件中。但是都没有起作用。奇怪的是,就在几天前,我还在使用MySQL和MySQL Workbench,但突然之间当我运行以下命令时,它开始给我报错。
$ mysql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我甚至无法使用mysqld_safe启动守护进程...我需要一步步指导从这里开始,以便再次正确运行MySQL服务器。


你试过去系统偏好设置 >(你会在这里看到一个MySQL的图标)点击它 > 启动服务器吗? - medina
1
/var/lib/mysql 存在吗? - Jim Garrison
2个回答

13

在一个新的Ubuntu 16上,我胡乱操作之后,手动删除了/var/lib/mysql目录。我希望安装Mariadb并且...

On a fresh Ubuntu 16, after having done some nonsense, I removed /var/lib/mysql manually. I wanted mariadb and hoped that
sudo apt-get remove mariadb-server mariadb-client

接着是

sudo apt-get install mariadb-server mariadb-client

它试图重新创建它,但失败了。

起作用的是什么

sudo apt-get remove mysql-common

由于这个常见的包似乎负责目录的创建,所以这花费了我比必要更长的时间,因为这是一个我没有明确安装的包,所以我没有考虑删除它(一些自动删除可能会有帮助)。


1
OP没有使用Debian。对于那些在Debian或Ubuntu上使用类似于MySQL的数据库,如Maria或Percona的人来说,这是一个好提示。 - Vorsprung
1
你是一个救命恩人。 - moein rahimi

3

我会试一下这个。

mkdir /var/lib/mysql
chown -R mysql /var/lib/mysql

我猜测你正在使用用户“mysql”来运行mysql。如果不是,请创建用户mysql并使用选项--user="mysql"运行mysqld_safe,或者将文件夹的所有权更改为你正在运行的用户。


2
所以我检查了我的/var/lib/mysql目录,它确实存在。我使用了chown -R mysql /var/lib/mysql命令,但我仍然无法访问它,所以我通过键入sudo chmod 777 mysql使其可供所有人使用。现在mysql已经可以访问它了,但当我运行mysqld时,它说找不到文件“.mysql/plugin.frm”,最后以“找不到./mysql/host.frm”的致命错误结束。它还要求我运行mysql_upgrade来创建它。我这样做了,但它说“致命错误,无法通过套接字/tmp/mysql.sock(2)进行连接”。有什么建议吗? - almel
非常感谢你,Vorsprung!我花了大约2个小时来解决这个问题。“chown -R mysql /var/lib/mysql”- 它解决了我所有的问题。 - DRAJI
请勿使用 chmod -R 777 /var/lib/mysql 这样的命令,除非您真的想公开所有数据。正确卸载 MySQL(包括 mysql-common 包),然后重新安装它。这将创建具有正确权限的目录。 - maaartinus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接