更改目录后无法启动MYSQL

所以我开始在我的Linux硬盘上空间不足。 我添加了另一个硬盘,现在我想改变MySQL目录。 因此,不是将数据保存到旧硬盘,而是将其保存到新的硬盘中。 新的硬盘安装为/ Data /

我寻找了几种方法来做到这一点,我遵循每一条指令。 但每次我按照指示,我得到一个错误“错误2002(HY000):不能连接到本地MySQL服务器通过套接字'/var/lib/mysql/mysql.sock'”

我试图移动目录,然后将旧的目录链接到新的目录。 同样的错误。

我试着移动整个目录,把etc下的my.cnf文件改成指向新的目录,我甚至改变了socket = /Data/mysql/mysql.sock这行同样的错误。

**另外,我确定所有的所有权都是mysql:mysql

它每次都无法启动。 所以我最终将所有的东西都移回原来的位置,并且成功地开始了。 我真的很感谢这里的一些帮助。

谢谢!

在my.cnf中,需要在两个地方添加套接字path:在[mysql]和在 – > [client] < – 节中。

这是一个典型的全局选项文件:

[客户]
端口= 3306
sockets= / TMP /的mysql.sock

的[mysqld]
端口= 3306
sockets= / TMP /的mysql.sock

一旦你把所有的东西都移到新的文件夹中,你需要确保这个文件夹拥有mysql:mysql的权限和所有权。

你得到的错误不是你从错误的地方启动mysql得到的,而是你需要修改[client] ,[mysqld]和其它任何位置的套接字位置,在my.cnf下

它与套接字或权限无关,我证实selinux和apparmor被禁用,但仍然无法启动mysql。

我也尝试了/ var / lib / mysql的符号链接。 删除mysql并从头开始是我能使它工作的唯一方法。

步骤1

彻底删除你的系统中的MySQL

第2步

将一个外部硬盘挂载到/ var / lib / mysql

步骤3

安装最新版本的mysql会说在/ var / lib / mysql中可能会有更早的版本,只是忽略它。

Mysql不能分辨出来,一切都很好。

检查是否还有一些mysqld进程仍然存在或没有?

 # ps aux | grep mysqld 

杀死所有mysqld进程(等待10秒钟,使其closures干净):

 # killall mysqld mysqld_safe 

如果你仍然能够看到多于运行这个命令:

 killall -9 mysqld mysqld_safe 

重新启动mysqld:

 /etc/init.d/mysql start