现在的位置: 首页 > 综合 > 正文

Linux上Mysql数据库安装目录移动

2013年01月29日 ⁄ 综合 ⁄ 共 989字 ⁄ 字号 评论关闭

系统环境:ubuntu server 12.04 已安装lamp
把默认数据库安装目录移到/home/fhx
sudo cp -R -p /var/lib/mysql /home/fhx
测试:
sudo mysql -uroot -p
错误提示:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

具体移动目录操作(下面红色部分是指已修改错误后):
在默认的数据库存储位置下就会有个文件夹mysqldb。要操作数据库首先得停止数据库进程:
sudo /etc/init.d/mysql stop
本文以转移到/home/fhx这个位置为例,下面命令将原有数据库转移到新位置:
sudo cp -R -p /var/lib/mysql /home/fhx
编辑MySQL配置文件:
sudo vi /etc/mysql/my.cnf
找到datadir这一行,将后面等于号之后的内容更改为/home/fhx/mysql然后保存退出。
自Ubuntu 7.10开始,Ubuntu就开始使用一种安全软件叫做AppArmor,这个安全软件会在你的文件系统中创建一个允许应用程序访问的区域(专业术语:应 用程序访问控制)。如果不为MySQL修改AppArmor配置文件,永远也无法为新设置的数据库存储位置启动
数据库服务。配置AppArmor:
sudo vi /etc/apparmor.d/usr.sbin.mysqld
找到/var/lib/mysql/这两行,注释掉这两行,在这两行前分别添加一个符号“#”即可注释,在这两行之前或之后加上下面内容:
/home/fhx/mysql/ r, 

/home/fhx/mysql/** rwk,

保存后退出.
sudo vi /etc/apparmor.d/abstractions/mysql
找到了
/var/lib/mysql/mysql.sock rw, 
这么一行,看来应该是问题的症结所在了。将其注释掉,并增加一句:
/home/fhx/mysql.sock rw, 
保存后退出.
执行命令:
sudo /etc/init.d/apparmor reload
返回Reloading AppArmor profiles : done.
即可以重启MySQL服务:
sudo /etc/init.d/mysql start

抱歉!评论已关闭.