MySQL 更改数据目录,mysqld.sock 出现问题

MySQL 更改数据目录,mysqld.sock 出现问题

我尝试更改数据库目录 datadir,我执行了以下步骤。我的机器:笔记本电脑 Ubuntu 11.10 64 位

安装:

sudo apt-get install mysql-server mysql-client

一切正常,我可以创建数据库、表,一切正常。更改数据目录:

1) $ /etc/init.d/mysql stop
2) $ cp -R -p /var/lib/mysql /new_path
3) $ rm /new_path                      (this only remove files unnecessary)
4) $ gedit /etc/mysql/my.cnf

将“datadir = var/lib/mysql”更改为新路径。

5) $ gedit /etc/apparmor.d/usr.sbin.mysqld

将“/var/lib/mysql”更改为“/new_path/mysql”的新行

6) $ /etc/init.d/apparmor reload
7) $ /etc/init.d/mysql restart
8) $ service mysql status     (is Ok)

错误如下。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

我尝试更改 /new_path/mysql 中的权限,但没有成功。

我尝试仅复制数据库(而不是 mysql 目录中的所有文件),但没有成功

我在其他论坛看到我必须将 /etc/apparmor.d/usr.sbin.mysqld 更改为以下内容

/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,

将“/var/run/mysqld/mysqld”替换为“/{,var/}run/mysqld/mysqld”,但在我的例子中,默认情况下是“/{,var/}run/mysqld/mysqld”。

请帮帮我,这个问题我已经困扰我两周了。

谢谢。

答案1

你可以这样做:

光盘/var/lib/

tar -cf - mysql | (cd /new_path ; tar -xvf -)

然后(因为这始终是一个好主意)进行备份。

 mv /var/lib/mysql /var/lib/mysql.old

然后是一个符号链接

 ln -s /new_path/mysql/ /var/lib

在这种情况下,您不需要触摸/etc/mysql/my.cnf

答案2

为了使这个对我有用,我需要修改mysql文件/etc/apparmor.d/usr.sbin.mysqld。由于某种原因,符号链接不够好。也许在运行 apparmor 之前链接不存在。所以我做了以下事情:

nano /etc/apparmor.d/usr.sbin.mysqld

并改变了

  #/var/lib/mysql/ r,
  #/var/lib/mysql/** rwk,
  /mysql/mysql/ r,
  /mysql/mysql/** rwk,

其中 /mysql 是我的所有 mysql 数据存储库(SSD 驱动器)的挂载点。

我从 walli 的一篇文章中得到了线索: 回复:MySQL 错误 2002 (HY000):无法连接到本地

我很幸运找到了这个问题的解决方案。我熬夜寻找解决方案。希望这对你有帮助。最好直接在 my.cnf 文件中发布有关此问题的说明。我只是不知道该把它发给谁。

相关内容