infobright创建表时指定存储目录无效的解决方法
2010-09-15 16:04
609 查看
infobright是一个基于MySQL数据库的列存储数据库,有收费版和免费版。
在使用infobright创建表时,如果存储引擎为BRIGHTHOUSE,那么指定DATA DIRECTORY='/data/myib' 是无效的——但如果存储引擎为MyISAM,DATA DIRECTORY有效。不知道是不是因为使用免费版的缘故。
举例:
1. 存储引擎为BRIGHTHOUSE:
可以看到使用show create table查看建表SQL时,DATA DIRECTORY未出现,而且/data/myib/下也没有e.MYD
2. 存储引擎为MyISAM:
此时/data/myib/下有f.MYD这个文件
解决方法:
有如下两种方法:
1. 修改infobright的配置文件
通过修改infobright的配置文件来实现,但这会影响到这个数据库实例的其它数据库的存储目录。
修改配置文件的datadir选项,如下:
停止数据库实例,移动/usr/local/infobright/data下的所有文件和目录到/data/myib下即可
2. 在datadir下创建符号链接
这个方式是目录操作,只会影响要改动的数据库。
如果我们要把名为‘probe’的数据库的存储目录改为/data/myib,执行下列shell命令即可:
#移动原数据库目录到新目录下
mv /usr/local/infobright/data/probe/ /data/myib/
#在datadir下创建到新存储目录的符号链接
ln -s /data/myib/probe/ /usr/local/infobright/data/probe
在使用infobright创建表时,如果存储引擎为BRIGHTHOUSE,那么指定DATA DIRECTORY='/data/myib' 是无效的——但如果存储引擎为MyISAM,DATA DIRECTORY有效。不知道是不是因为使用免费版的缘故。
举例:
1. 存储引擎为BRIGHTHOUSE:
mysql> create table e(id varchar(10)) ENGINE=BRIGHTHOUSE DATA DIRECTORY='/data/myib'; Query OK, 0 rows affected (7.91 sec) mysql> show create table e; +-------+------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+------------------------------------------------------------------------------------------------+ | e | CREATE TABLE `e` ( `id` varchar(10) DEFAULT NULL ) ENGINE=BRIGHTHOUSE DEFAULT CHARSET=latin1 | +-------+------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
可以看到使用show create table查看建表SQL时,DATA DIRECTORY未出现,而且/data/myib/下也没有e.MYD
2. 存储引擎为MyISAM:
mysql> create table f(id varchar(10)) ENGINE=MyISAM DATA DIRECTORY='/data/myib'; Query OK, 0 rows affected (3.90 sec) mysql> show create table f; +-------+------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+------------------------------------------------------------------------------------------------------------------------+ | f | CREATE TABLE `f` ( `id` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/data/myib/' | +-------+------------------------------------------------------------------------------------------------------------------------+
此时/data/myib/下有f.MYD这个文件
解决方法:
有如下两种方法:
1. 修改infobright的配置文件
通过修改infobright的配置文件来实现,但这会影响到这个数据库实例的其它数据库的存储目录。
修改配置文件的datadir选项,如下:
vi /etc/my-ib.cnf [mysqld] basedir = /usr/local/infobright datadir = /data/myib
停止数据库实例,移动/usr/local/infobright/data下的所有文件和目录到/data/myib下即可
2. 在datadir下创建符号链接
这个方式是目录操作,只会影响要改动的数据库。
如果我们要把名为‘probe’的数据库的存储目录改为/data/myib,执行下列shell命令即可:
#移动原数据库目录到新目录下
mv /usr/local/infobright/data/probe/ /data/myib/
#在datadir下创建到新存储目录的符号链接
ln -s /data/myib/probe/ /usr/local/infobright/data/probe
相关文章推荐
- "为帮助内容存储区指定的位置无效或者您无权访问该位置"解决方法
- "为帮助内容存储区指定的位置无效或者您无权访问该位置"解决方法
- sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
- sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
- Microsoft Help查看器1.0 为帮助内容存储区指定的位置无效或者您无权访错误 的解决办法
- 线程间操作无效: 从不是创建控件的线程访问它的三种解决方法
- 使用tar解压文件到指定目录时出现Not found in archive的解决方法
- phpstorm 的.idea 目录加入.gitignore无效的解决方法
- VC6.0“打开”选项,“添加文件到目录”无效的解决方法
- C# 引发“线程间操作无效: 从不是创建控件“XXX”的线程访问它” 解决方法
- 【转】线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- [转]线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- ORACLE创建数据库最后一步确定时弹出无法创建目录的解决方法
- 黑马程序员-解决系统报错“线程间操作无效: 从不是创建控件" txtbox1" 的线程访问它”问题的方法
- maven打war包遇到缺少web.xml错误的解决方法,指定目录
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- SqlDataReader指定转换无效的解决方法
- 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中[解决方法]
- pl/sql developer中用execute调用存储过程弹出‘无效的sql语句’解决方法