QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2614|回复: 4

一点对MYSQL的感想

[复制链接]
发表于 2005-10-7 00:55:02 | 显示全部楼层 |阅读模式
MYSQL确实是个好东西
不过问题在于兼容性的问题
这两天都在做数据文件转换的问题
想想现在似乎有必要条例一下思路了

首先是MYSQL自己的数据备份问题
mysqldump -u root -p trial > trial.sql
相对的
导入一 个备份文件的命令:
mysql -u root -p trial < trial.sql
注意一点是一个使用的是mysql
一个使用的mysqldump
mysqldump 这个软件是mysql自带的一个备份用软件
但是比较局限
因为输出文件基本上就只有MYSQL能懂
不过比备份文件夹的方法好多了
因为今天就出现了只是复制文件夹出现一些文件不能读取的问题
似乎在创建一个数据库下创建表的时候
那个表的配置文件里面会含入数据库名称
如果更改了数据库名称(文件夹名)的话
那么就会出错
至少今天是出现了这个问题
不过不知道我分析的是否正确
另外一个基于文件夹复制的问题是权限问题
至少的UNIX操作系统下是个问题
必须是用户mysql和组mysql才能在mysql环境里面调用修改这个数据库
复制的话一般来说新的文件夹都是登录用户的所有
所以运行的时候会出现问题

现在再看看access和mysql数据转换的问题
这个是个很头疼的问题
在不借助第三方工具的时候
可行性方案为以下:
分别将access里面的所有表单给转换成TXT文件
然后再将这些TXT文件放到 /var/lib/mysql/dbname/
下面
然后在mysql里面运行命令
(在已经在那个需要数据的数据库下)
load data infile 'tablename.txt' into table tablename lines terminated by '\r\n\';
不过有个问题是
你得首先创建出这个数据库和相应的表
如果那个access里面包含的数据很多的话
那么会死人的!

还有一个方案是基于windows的
那个就是ODBC
首先创建出一个DSN文件在C:\Program Files\Common Files\ODBC\Data Sources\
名称无所谓
内容如下
[code:1]

[ODBC]
DRIVER=MySQL ODBC 3.51 Driver
UID=
STMT=
OPTION=
PORT=
PASSWORD=
SERVER=127.0.0.1
DATABASE=trial
DESC=

[/code:1]
不过这个是要在本机上
或者是要转换的计算机上已经安装了MYSQL DRIVER的情况下
然后可以根据附件里面PPT完成转换
注意一点
access2003对DSN文件的处理上似乎有点问题
不能够正常的添加文件
这个就是为什么要创建那个文件了
添加DSN文件的时候注意要和你刚刚创建的那个文件一个名字
不过这个方法其实也是一个表一个表的完成转换
比较麻烦

简便的方法?

但是目前只找到了在WIN下面的东西
是个第三方软件
access2mysql pro
目前是5.06版
10次的使用限制
没有找到破解
不过有5,01的破解和注册就是了
使用这个软件就可以直接远程(当然本地也可以)将一个*.mdb文件添加到mysql服务器里面去
不需要事先创建数据库和表
只要指定名字就可以了
然后你的那个mysql数据库里面就出现了所有表
很方便
但是需要买

另外一个问题需要注意一下的是表里面的时间问题
如果一个field是时间的华
access 和mysql的显示会不一样
一句话
不兼容
在PPT里面也有讲

解决的方法
最好就是事先将包含时间的field给转换成text然后在换回来

mysql其他格式的转换?
那么就得用到shell scripting了
一般来说
将表转换成文本文件就几乎没有什么问题了

access上面的格式转换看似很多
其实也就是那么几种
所以在没有三方工具的情况下还是比较头疼的

总的来说
要将*.mdb文件转换成mysql 的数据的话
还是的用到三方软件
其实那个程序我个人觉得其实就是一个脚本文件
只是界面漂亮一点
希望对大家有点帮助

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2005-10-7 08:09:53 | 显示全部楼层
好贴,不过转网站开发版。
回复

使用道具 举报

发表于 2005-10-7 10:44:06 | 显示全部楼层
分别将access里面的所有表单给转换成TXT文件
然后再将这些TXT文件放到 /var/lib/mysql/dbname/
下面
然后在mysql里面运行命令
(在已经在那个需要数据的数据库下)
load data infile 'tablename.txt' into table tablename lines terminated by '\r\n\';
不过有个问题是
你得首先创建出这个数据库和相应的表
如果那个access里面包含的数据很多的话
那么会死人的!

我要没记错,这是最有效的办法,因为许多数据库软件都支持导出、导入这种格式。
回复

使用道具 举报

 楼主| 发表于 2005-10-7 13:11:13 | 显示全部楼层
多谢刀哥
这个算是这几天研究MYSQL的一点成果吧
确实很头疼啊...转换的时候
回复

使用道具 举报

发表于 2005-10-7 13:17:29 | 显示全部楼层
Acess2MySQL或navicat
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-3-28 17:54 , Processed in 0.151197 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表