1、最简单就是,直接拷贝到数据库的的data下的数据库文件夹,前提是
mysql的版本一致,字体一致。
此方法简单快捷但不是没个人都能做到。
2、就是在本地机器安装mysql数据库转换*.frm,*.myd,*.myi,文件裂芦烂为*.sql文件:
1、首先安装mysql,最好版本和服务器一致,字体也要一致(不一致导入后有后遗症-乱码)。
2、然后用建库命令 创建新的数据库命令如下:
create database name(创建名为name的数据库呵呵“;”不能少) 然后去你安装的mysql目录下的data文件肆漏夹下就有个name文件夹。
3、把你的*.frm,*.myd,*.myi文件统统考P到data文件夹下。
4、然后在命令提哗备示符下进入到mysql 安装目录的bin目录下 进行导出为*.sql文件。
mysqldump -uroot -p name >name.sql。
自己 *** 作的几点体会:
1、mysql数据库最好安装的根目录下这样在命令提示符时省很多事情。
2、*.sql倒出时最好是一个表一个表的导出 文件名最好为 dataname_tabname.sql,好记便于导入。
而且一个表的导出*.sql文件小。因为好多数据库限制大小,例如我用的DH的空间限制为10m ,大了的话导入不了(对了导出后大于服务器限制的可以打成zip也可以导入)
只修改 frm 文件
从上面的例子我们看到修改表的 frm 文件是很快的 但MySQL 有时候会在没有必要的时候也重建表 如果愿意冒一些风险 可以让MySQL 做一些其他类型的修改而不用重建表
我们下面要演示的技巧是不受官方支持的 也没有文档记录 并且也可能不能正常工作 采用这些技术需要自己承担风险 建议在执行之前首先备份数据!
下面这些 *** 作是有可能不需要重建表的
移除(不是增加)一个列的 AUTO_INCREMENT属性
增加 移除 或更改ENUM和SET常量 如果移除的是已经有行数据用到其值的常量 查询将会返回一个空字串值
基本的技术是为想要的表结构创建一个新的 frm 文件 然后用它替换掉察氏已经存在的那张表的 frm 文件 像下面这样
创建一张有相同结构的空表 并进行升毕所需要的修改(例如增加ENUM 常量)
执行FLUSH TABLES WITH READ LOCK 这将会关闭所有正在使用的表 并且禁止任何表被打开
交换 frm 文件
执行UNLOCK TABLES 来释放第 步的读锁
下面以给sakila film 表的rating 列增加一个常量为例来败笑散说明 当前列看起来如下
返回目录 高性能MySQL
编辑推荐
ASP NET MVC 框架揭秘
Oracle索引技术
ASP NET开发培训视频教程
lishixinzhi/Article/program/MySQL/201311/29671
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)