当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-24 22:34 

注册: 2006-12-01 7:10
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
因为linux的主分区(sda2)容量不够,我装了第二块硬盘(sdb1)。新硬盘格式化成ext4,并且在fstab中自动挂载如下:
proc /proc proc defaults 0 0
# Entry for /dev/sda2 :
UUID=966e4d95-39b2-464e-81b9-8ce5920c1736 / ext3 relatime,errors=remount-ro 0 1
# Entry for /dev/sda3 :
UUID=5a515218-2043-4ac4-bd9b-dfc527906922 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/sda1 /media/SYSTEM ntfs-3g defaults,locale=zh_CN.UTF-8 0 0
/dev/sda5 /media/win_d ntfs-3g defaults,locale=zh_CN.UTF-8 0 0
/dev/sdb1 /mnt/DATA ext4 auto,rw,umask=022 0 0

然后我把/var/lib/mysql目录全部移到 /mnt/DATA下面。修改/etc/mysql/my.cnf:
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /mnt/DATA/mysql
tmpdir = /tmp
skip-external-locking

尝试 sudo /etc/init.d/mysql start 报错,在/var/log/daemon.log文件中记录错误是:
Sep 24 15:26:50 ubuntu-lt mysqld_safe[21537]: started
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: 090924 15:26:50 [Warning] Can't create test file /var/lib/mysql/ubuntu-lt.lower-test
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: 090924 15:26:50 [Warning] Can't create test file /var/lib/mysql/ubuntu-lt.lower-test
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: 090924 15:26:50 InnoDB: Operating system error number 13 in a file operation.
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: InnoDB: The error means mysqld does not have the access rights to
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: InnoDB: the directory.
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: InnoDB: File name ./ibdata1
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: InnoDB: File operation call: 'open'.
Sep 24 15:26:50 ubuntu-lt mysqld[21540]: InnoDB: Cannot continue operation.
Sep 24 15:26:50 ubuntu-lt mysqld_safe[21547]: ended

请问各位是否有办法解决问题,谢谢!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-25 16:34 
头像

注册: 2008-10-18 12:41
帖子: 1339
送出感谢: 0 次
接收感谢: 0 次
1、关掉数据库 /etc/init.d/mysql stop

2、假设我们指定的数据库文件目录为/db
创建目录 /db,并修改其拥有者及所属群组为mysql:mysql.命令:chown mysql:mysql db
修改mysql配置文件my.cnf:将datadir=/var/lib/mysql改为datadir=/db

3、修改ubuntu中的安全设置
/etc/apparmor.d/usr.sbin.mysqld 在这个文件里面加入权限设定,将原来的
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
更换成
/db/mysql/ r,
/db/mysql/** rwk,

4、重新初始化数据文件:执行mysql_install_db

5、启动mysql数据库服务:sudo /etc/init.d/mysql start

6、设置mysql数据库root密码:mysqladmin -u root password ‘new-password’

7、在/etc/mysql/debian.cnf中找到你的debian-sys-maint用户密码,在mysql中重新建立这个用户.

此时我们会发现/db目录下出现mysql相关文件。如果我们新建数据库,其数据库文件也将出现在db目录下。表示我们修改的mysql数据库文件存储目 录正确。


_________________
Server@Linux:~#


最后由 木泥黑 编辑于 2010-03-12 10:59,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-25 16:56 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
检查目录的属主。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-25 18:59 

注册: 2006-12-01 7:10
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
oneleaf 写道:
检查目录的属主。


这是/var/lib/mysql下面各个目录的属性:
drwx------ 2 mysql root 12288 2009-09-23 17:54 ailas
-rw-r--r-- 1 root root 0 2009-09-24 11:57 debian-5.0.flag
-rw-rw---- 1 mysql mysql 10485760 2009-09-24 15:29 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2009-09-24 15:45 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2009-09-24 11:57 ib_logfile1
drwxr-xr-x 2 mysql root 4096 2009-09-24 12:02 mysql
-rw------- 1 root root 6 2009-09-24 11:57 mysql_upgrade_info
drwx------ 2 mysql root 20480 2009-09-24 12:21 rec_movie
drwx------ 2 mysql root 4096 2009-09-24 12:21 rec_movielens
drwx------ 2 mysql root 4096 2009-09-24 12:21 recommendation

我觉得目录本身的属主和读写属性都应该是对的,因为我用mv把数据文件移回/var/lib下面(在主硬盘sda)就一切正常,但是mv到新硬盘sdb1上面就出问题。

除了在my.cnf中设置数据库文件存放位置之外,是不是还需要其他的改动?


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-25 22:15 

注册: 2006-12-01 7:10
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
我又做了个实验,把data file 移到主硬盘的其他目录下面,mysql也可以正常启动。
现在原因基本上可以确定为下面两条之一:
1, mysql不支持把数据文件放到其他分区;
2, sdb1分区挂载时权限设置有问题。
请高手指点一下,谢谢!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-27 9:17 
头像

注册: 2009-09-18 22:06
帖子: 15
地址: http://www.joyvs.com
送出感谢: 0 次
接收感谢: 0 次
pearly 写道:
我又做了个实验,把data file 移到主硬盘的其他目录下面,mysql也可以正常启动。
现在原因基本上可以确定为下面两条之一:
1, mysql不支持把数据文件放到其他分区;
2, sdb1分区挂载时权限设置有问题。
请高手指点一下,谢谢!




ubuntu 8.04 在 /etc/apparmor.d/usr.sbin.mysqld
在这个文件里面可以修改应用程序路径的权限.这个文件做了相应更改才可以移到别的分区去。


_________________
路上行人皆红杏,渔樵耕读尽红妆~~~~不是玄藏说的!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-27 11:33 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
我是直接做了一个ln -s 将其它分区的目录挂载软链接到 /var/lib/mysql 都没有任何问题。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-30 4:25 

注册: 2006-12-01 7:10
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
6楼正解。成功了,多谢各位。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-09-30 8:43 
头像

注册: 2007-05-06 8:19
帖子: 7433
送出感谢: 0 次
接收感谢: 4
9494,其实你以为改动了文件位置系统就自己知道?就算ubuntu强,也没那么的强。

btw:还是ln -s来得好一些吧


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 大家帮帮忙: mysql数据文件转移的问题
帖子发表于 : 2009-10-09 20:59 
头像

注册: 2008-02-24 14:15
帖子: 693
地址: 江苏
系统: Ubuntu
送出感谢: 17
接收感谢: 0 次
冲浪板 写道:
9494,其实你以为改动了文件位置系统就自己知道?就算ubuntu强,也没那么的强。

btw:还是ln -s来得好一些吧



_________________

怀念以前的老台式机。可惜现在租的地方没条件用了。目前只能用笔记本和手机了。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译