ACCESS数据库(.mdb 文件)转 MYSQL

今天记录一下ACCESS数据库如何在Linux平台上转换为MySQL数据库
准备工作:

  • mydata.mdb
  • MYSQL用户名为:root 密码为:root
  • 新建一个MySQL数据库:mydb

第一步,.mdb文件在linux上是不能打开的,可以下载一个 mdbtools 工具打开

$ sudo apt install mdbtools

打开之后显示如下,mydata.mdb中有一张名为lt的表

ACCESS数据库(.mdb 文件)转 MYSQL

第二步,进入mydata.mdb所在目录下,将ACCESS下的表lt导入到数据库mydb中

$ mdb-tables mydata.mdb #查看mydata.db下的表
# lt
$ mdb-schema mydata.mdb mysql | mysql -uroot -proot mydb 
# 将ACCESS下的表lt导入到数据库mydb中

导入之后可以查看是否成功,注意现在只是导入了空表

第三步,将ACCESS下lt表中的数据导入数据库mydb下lt表中

$ mdb-export -I mysql -D '%Y-%m-%d %H:%M:%S' mydata.mdb lt | mysql -uroot -proot mydb

可能遇到的问题:第三步可能报错,大意是插入了不正确的字符串。原因是MySQL字符编码引起的,解决方案如下:
1.进入mysql

$ mysql -uroot -proot

mysql> show variables like 'character%';

ACCESS数据库(.mdb 文件)转 MYSQL

可以看到 character_set_database 和 character_set_server 的编码方式为 latin1,我们需要修改为utf8,修改方式如下:

$ sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

ACCESS数据库(.mdb 文件)转 MYSQL

$ sudo gedit /etc/mysql/conf.d/mysql.cnf

ACCESS数据库(.mdb 文件)转 MYSQL

重启mysql,成功

$ /etc/init.d/mysql restart

ACCESS数据库(.mdb 文件)转 MYSQL

相关推荐