系统环境: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