分页: 1 / 2
如何配置mysql的数据库目录
发表于 : 2008-12-05 14:14
由 百草谷居士
在ubuntu下使用新立得安装完mysql后,默认的数据库目录在/var/lib/mysql。我想把他放到/home/data文件夹下。
于是我把/var/lib/mysql下的文件全部复制到了/home/data文件夹下,并且修改了/etc/mysql/my.cnf文件中datadir的设置。
但是数据库却不能启动了。数据库的启动程序是自动作为服务安装的。
请教,如何修改mysql的数据库目录为自己定义的目录?
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-05 15:44
由 be00
数据库不能启动了,有什么错误提供吗
我估计/var/lib/mysql的权限都是mysql的,/home/data的权限可能需要改一下
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-06 8:44
由 百草谷居士
权限已经改过了,另外按照mysql文档中的说明运行了mysql_install_db出现错误。
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-09 10:06
由 百草谷居士
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-09 11:04
由 be00
多实验几次,我理想的情况是把win下面的mysql和ubuntu下面的公用一个数据库,折腾了半天都成功,最后只好默认/var/lib/了
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-09 12:58
由 百草谷居士
http://hi.baidu.com/weiqi228/blog/item/ ... 2bb32.html
我在这里找到了一篇文章,终于解决了这个问题
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)'
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-10 11:35
由 百草谷居士
进入mysql时必须使用-p参数,不指定参数就直接退出,这样正常吗?
另外使用root用户可以建立数据库,但是使用自己添加的用户不能创建数据库,问题错在哪里呢?
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-10 15:46
由 be00
第7个的意思,可以参考mysql的启动文件 /etc/init.d/mysql

不错,还真被你找到了,我也有空实验一下。
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-10 16:02
由 be00
呵呵,多谢分享,我实现把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)
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-12 8:23
由 百草谷居士
是不是mysql中建立数据库必须使用root权限?
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-24 16:25
由 mymathersname
收藏了……谢谢LZ
Re: 如何配置mysql的数据库目录
发表于 : 2008-12-25 0:39
由 jakeycis
试过了,好像有点难
Re: 如何配置mysql的数据库目录
发表于 : 2009-01-02 12:23
由 yoyu007
Re: 如何配置mysql的数据库目录
发表于 : 2009-01-27 15:35
由 Liver
还是不太明白

Re: 如何配置mysql的数据库目录
发表于 : 2009-03-08 15:10
由 lida2003
百草谷居士 写了:http://hi.baidu.com/weiqi228/blog/item/ ... 2bb32.html
我在这里找到了一篇文章,终于解决了这个问题
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