Chinaunix首页 | 论坛 | 博客
  • 博客访问: 476671
  • 博文数量: 99
  • 博客积分: 3621
  • 博客等级: 中校
  • 技术积分: 1089
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-22 16:29
文章存档

2012年(21)

2011年(28)

2010年(50)

分类: Mysql/postgreSQL

2010-08-25 14:59:52

MYSQL的数据库保存在安装目录下的DATA文件夹里,以数据库名称作为文件夹名称。
现在希望A数据库保存在D盘的DATA_A下,B数据库保存在D盘的DATA_B下,似乎没有相关的配置项可以做到。
但事实上还是有办法的,需要用到  .sym 文件。下面贴出操作步骤:
1:数据库安装目录在  D:\mysql6\data
2:NET STOP MYSQL 停止MYSQL服务
3:在数据库安装目录的DATA下新建一个文本文件,名称为你要分离的数据库名称.sym,如food.sym。文本文件的内容为:D:\data\food\  表明此数据库的目录指向D:\data\food\,保存。
4:到D盘下建DATA文件夹,到DATA下建文件夹food.
5:net start mysql 重新启动MYSQL服务
6:查看数据库,能发现多了一个名称为FOOD的数据库了。
 

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


选择FOOD数据库,创建表,插入数据

mysql> use food;
Database changed
mysql> create table b(b int);
Query OK, 0 rows affected (0.14 sec)

mysql> insert into b values(1),(2),(3);
Query OK, 3 rows affected (0.11 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from b;
+------+
| b |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)

mysql>


一切正常。到D盘DATA下的FOOD看看,是不是多了个b.frm文件?

数据库文件分离成功完成。

不过这样的方法有一定的局限性:

1:如果数据库里安装目录下有个FOOD的文件夹,那么此种方法失效。

2:如果打开了独享文件开关,此办法失效。--innodb_file_per_table

3:操作远端服务的时候,比如到192.168.0.100上建个分离的数据库,需要在.SYM里写上完整路径

英文原版资料链接

http://dev.mysql.com/doc/refman/5.1/en/windows-symbolic-links.html

翻译的对的,请批评指出。

阅读(2337) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-08-27 08:48:04

Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com