分页: 1 / 1

【分享】ubuntu 12.04 更改mysql 数据库目录

发表于 : 2012-06-16 11:22
szfhx
系统环境: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

Re: 【求助】ubuntu 12.04 更改mysql 数据库目录出错

发表于 : 2012-06-16 11:23
szfhx
另外找不到 mysql.sock这个文件

Re: 【求助】ubuntu 12.04 更改mysql 数据库目录出错

发表于 : 2012-06-16 11:52
szfhx
找到错误了
sudo vi /etc/mysql/my.cnf
找到datadir这一行,将后面等于号之后的内容更改为/home/fhx/mysql然后保存退出。

sudo vi /etc/apparmor.d/usr.sbin.mysqld
找到/var/lib/mysql/这两行,注释掉这两行,在这两行前分别添加一个符号“#”即可注释,在这两行之前或之后加上下面内容:
/home/fhx/mysql/ r,
/home/fhx/mysql/** rwk,

Re: 【分享】ubuntu 12.04 更改mysql 数据库目录

发表于 : 2012-06-17 7:22
szfhx
1.新建用户。

//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,”ptubuntu”,password(“1234″));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:ptubuntu 密码为:1234 的用户。

然后登录一下。

mysql>exit;
@>mysql -u ptubuntu -p
@>输入密码
mysql>登录成功


2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(ptubuntuDB)
mysql>create database ptubuntuDB;
//授权ptubuntu用户拥有ptubuntu数据库的所有权限。
>grant all privileges on ptubuntuDB.* to ptubuntu@localhost identified by ’1234″;
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on ptubuntuDB.* to ptubuntu@localhost identified by ’1234″;
//刷新系统权限表。
mysql>flush privileges;
*/

3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User=”ptubuntu” and Host=”localhost”;
mysql>flush privileges;
//删除用户的数据库
mysql>drop database ptubuntuDB;

4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password(‘新密码’) where User=”ptubuntu” and Host=”localhost”;
mysql>flush privileges;