如何配置mysql的数据库目录

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
头像
百草谷居士
帖子: 4012
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

如何配置mysql的数据库目录

#1

帖子 百草谷居士 » 2008-12-05 14:14

在ubuntu下使用新立得安装完mysql后,默认的数据库目录在/var/lib/mysql。我想把他放到/home/data文件夹下。
于是我把/var/lib/mysql下的文件全部复制到了/home/data文件夹下,并且修改了/etc/mysql/my.cnf文件中datadir的设置。
但是数据库却不能启动了。数据库的启动程序是自动作为服务安装的。

请教,如何修改mysql的数据库目录为自己定义的目录?
Mint 22 / Xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
联系:

Re: 如何配置mysql的数据库目录

#2

帖子 be00 » 2008-12-05 15:44

数据库不能启动了,有什么错误提供吗

我估计/var/lib/mysql的权限都是mysql的,/home/data的权限可能需要改一下
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
百草谷居士
帖子: 4012
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: 如何配置mysql的数据库目录

#3

帖子 百草谷居士 » 2008-12-06 8:44

权限已经改过了,另外按照mysql文档中的说明运行了mysql_install_db出现错误。
Mint 22 / Xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
百草谷居士
帖子: 4012
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: 如何配置mysql的数据库目录

#4

帖子 百草谷居士 » 2008-12-09 10:06

连使用符号连接的方法都不行,真是服了。
:em20 :em20 :em20
Mint 22 / Xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
联系:

Re: 如何配置mysql的数据库目录

#5

帖子 be00 » 2008-12-09 11:04

多实验几次,我理想的情况是把win下面的mysql和ubuntu下面的公用一个数据库,折腾了半天都成功,最后只好默认/var/lib/了
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
百草谷居士
帖子: 4012
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: 如何配置mysql的数据库目录

#6

帖子 百草谷居士 » 2008-12-09 12:58

http://hi.baidu.com/weiqi228/blog/item/ ... 2bb32.html
我在这里找到了一篇文章,终于解决了这个问题 :em04
ubuntu8.10下修改mysql数据库存储位置
2008-11-10 12:39
1、关掉数据库 sudo /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中的安全设置
sudo gedit /etc/apparmor.d/usr.sbin.mysqld 在这个文件里面加入权限设定,将原来的
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
更换成
/db/mysql/ r,
/db/mysql/** rwk,

4、重新初始化数据文件:执行sudo 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数据库文件存储目录正确。
其中在修改了/etc/apparmor.d/usr.sbin.mysqld文件后要使用sudo /etc/init.d/apparmor restart重新启动这个进程。
据说这个是在ubuntu中特有的安全机制,有知道的朋友可以给讲一下apparmor的作用。其实一直不成功关键就是这里了。
另外,文中第7步不晓得究竟是什么意思?
不过在重新启动mysql的时候还是有一个错误出现:
~$ sudo /etc/init.d/mysql restart
* Stopping MySQL database server mysqld [fail]
* Starting MySQL database server mysqld [ OK ]
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Mint 22 / Xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
百草谷居士
帖子: 4012
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: 如何配置mysql的数据库目录

#7

帖子 百草谷居士 » 2008-12-10 11:35

进入mysql时必须使用-p参数,不指定参数就直接退出,这样正常吗?
另外使用root用户可以建立数据库,但是使用自己添加的用户不能创建数据库,问题错在哪里呢?
Mint 22 / Xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
联系:

Re: 如何配置mysql的数据库目录

#8

帖子 be00 » 2008-12-10 15:46

第7个的意思,可以参考mysql的启动文件 /etc/init.d/mysql

:em11 不错,还真被你找到了,我也有空实验一下。
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
be00
帖子: 805
注册时间: 2008-07-28 19:51
来自: 长沙
联系:

Re: 如何配置mysql的数据库目录

#9

帖子 be00 » 2008-12-10 16:02

呵呵,多谢分享,我实现把mysql的数据文件折腾到win下面去了

其中/etc/apparmor.d/usr.sbin.mysqld做了对应的修改:
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
/media/Soft/program/mysql-5.0.51b-win32/data/ r,
/media/Soft/program/mysql-5.0.51b-win32/data/** rwk,


/etc/mysql/my.cnf也做了对应的修改
#datadir = /var/lib/mysql
datadir = /media/Soft/program/mysql-5.0.51b-win32/data

代码: 全选

zhanggang@T60:/media/Soft/program/mysql-5.0.51b-win32$ sudo cp -R /var/lib/mysql data

zhanggang@T60:/media/Soft/program/mysql-5.0.51b-win32/data$ sudo /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                 [ OK ] 
 * Starting MySQL database server mysqld                                 [ OK ] 
 * Checking for corrupt, not cleanly closed and upgrade needing tables.

zhanggang@T60:/media/Soft/program/mysql-5.0.51b-win32/data$ mysql -u test -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 420
Server version: 5.0.67-0ubuntu6-log (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| test               | 
+--------------------+
2 rows in set (0.00 sec)

我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我
头像
百草谷居士
帖子: 4012
注册时间: 2006-02-10 16:36
系统: debian12/xubuntu2404

Re: 如何配置mysql的数据库目录

#10

帖子 百草谷居士 » 2008-12-12 8:23

是不是mysql中建立数据库必须使用root权限?
Mint 22 / Xubuntu 24.04

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars

Re: 如何配置mysql的数据库目录

#11

帖子 mymathersname » 2008-12-24 16:25

收藏了……谢谢LZ
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
Liver
帖子: 7
注册时间: 2009-01-16 11:39

Re: 如何配置mysql的数据库目录

#14

帖子 Liver » 2009-01-27 15:35

还是不太明白 :em06
lida2003
帖子: 232
注册时间: 2008-11-11 15:54

Re: 如何配置mysql的数据库目录

#15

帖子 lida2003 » 2009-03-08 15:10

百草谷居士 写了:http://hi.baidu.com/weiqi228/blog/item/ ... 2bb32.html
我在这里找到了一篇文章,终于解决了这个问题 :em04
ubuntu8.10下修改mysql数据库存储位置
2008-11-10 12:39
1、关掉数据库 sudo /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中的安全设置
sudo gedit /etc/apparmor.d/usr.sbin.mysqld 在这个文件里面加入权限设定,将原来的
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
更换成
/db/mysql/ r,
/db/mysql/** rwk,

4、重新初始化数据文件:执行sudo 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数据库文件存储目录正确。
其中在修改了/etc/apparmor.d/usr.sbin.mysqld文件后要使用sudo /etc/init.d/apparmor restart重新启动这个进程。
据说这个是在ubuntu中特有的安全机制,有知道的朋友可以给讲一下apparmor的作用。其实一直不成功关键就是这里了。
另外,文中第7步不晓得究竟是什么意思?
不过在重新启动mysql的时候还是有一个错误出现:
~$ sudo /etc/init.d/mysql restart
* Stopping MySQL database server mysqld [fail]
* Starting MySQL database server mysqld [ OK ]
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
上面的出错信息可以通过下面改掉,但是改了以后,start MySql就会失败,郁闷
http://ubuntuforums.org/showthread.php?t=112505
回复