STUDY WHILE YOU ARE BORING


  • 首頁

  • 搜索

  • 技术

  • Tags

  • 关于我

Mysql 迁移到 PostgreSQL 傻瓜手札

發表於 March 12, 2014   |   作者: Tim   |   分类: 技术   |   评论

好折腾

据说PostgreSQL 非常强大与文档,但是之前的项目是MySQL的;
查阅了n多的网上资料和参考了n多的大咖手记,经历了无数次失败,终于整理出一条必定成功的捷径,赶紧记录下来分享给大家。实在太不容易了。

工具介绍

  • mysqldump
  • mysql2pgsql.perl.zip

不需要了,好简单哈

导出原始表结构和数据

  1. mysqldump --no-data [dbname] >dbdef.sql
  2. mysqldump -v -nt --complete-insert=TRUE --compact --no-create-info --skip-quote-names [dbname] >dbdata.sql

这样我们得到2个文件:

  • dbdef.sql
  • dbdata.sql

数据转换

  1. perl mysql2pgsql.perl dbdef.sql dbdef.psql

这样我们得到 dbdef.psql 这个结构适用于pgsql的文件

数据导入

  1. psql -U username -d [dbname] -f dbdef.psql

注意是后缀是 psql

  1. 导入数据 psql -U username -d [dbname] -f dbdata.sql

错误?

  1. 如果出现数据文件(dbdata.sql)导入出错是因为mysql默认字符串里的''是转义符,而pgsql默认不是,修改postgresql.conf:
    `backslash_quote = on

escape_string_warning = off
standard_conforming_strings = off
`
数据导入完成后可以改回默认值。


参考资料1

pgsql, mysql
【微信】请点击右上角将它发送给指定的朋友或分享到朋友圈
尾兽超萌

钜添

56 文章
2 分類
1 页面
GitHub 日记技术
php apache centos macos mysql https shadowsocks mac 微信 ups svn javascript outline accesskey Chrome Extension letsencrypt ssl free certification certbo wildcard renew cloudflare pgsql 归档 binlog isset array_key_exists redmine axure
© 2026 钜添   |   文章 RSS     |  登录
由 Typecho 强力驱动
主題 - NexT
Send message encrypted and private - Msg2
Build your Under Construction Page without hosting - UnderConstruct.IO