所以我开始在我的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并从头开始是我能使它工作的唯一方法。
彻底删除你的系统中的MySQL
将一个外部硬盘挂载到/ var / lib / mysql
安装最新版本的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