如何快速将postgresql 转换为mysql

如何快速将postgresql 转换为mysql,第1张

MySQL数据库迁移到PostgreSQL 查了不少资料,也尝试了一些,最后采用的办法如下: 1 导出mysql表定义(无数据) mysqldump --no-data [dbname] >dbdefsql 2 使用mysql2postgres把脚本转换为pgsql 3 上面生成的脚本还不一定很完美

--  以 test 作为用户名,导出 localhost:5432 服务器上的 Test 数据库。

--  导出的文件名为 test_data

F:\PostgreSQL\92\bin>pg_dump -f test_data -h localhost -U test -p 5432 Test

口令:

F:\PostgreSQL\92\bin>dir test_

 驱动器 F 中的卷是 Install

 卷的序列号是 24AD-61D9

 F:\PostgreSQL\92\bin 的目录

2013-04-15  14:46           136,270 test_data

               1 个文件        136,270 字节

               0 个目录 10,456,657,920 可用字节

-- 将 test_data  文件中的数据,导入到 localhost:5432 服务器上的 Test2 数据库。

F:\PostgreSQL\92\bin>psqlexe -h localhost -U test -p 5432 -d Test2 < test_data

用户 test 的口令:test

SET

SET

SET

SET

SET

CREATE SCHEMA

ALTER SCHEMA

CREATE EXTENSION

COMMENT

CREATE EXTENSION

COMMENT

上面的例子, 是  备份 / 恢复整个数据库的

如果你是要 仅仅 备份 / 恢复  某个表的,  那么命令行里面增加下面的参数:

-t, --table=TABLE            只转储指定名称的表

PostgreSQL是一个功能强大的开源对象关系型数据库系统,他使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgreSQL的起源可以追溯到1986年,作为加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上进行了30多年的积极开发。

PostgresSQL凭借其经过验证的架构,可靠性,数据完整性,强大的功能集,可扩展性以及软件背后的开源社区的奉献精神赢得了良好的声誉,以始终如一地提供高性能和创新的解决方案。

硬锁定,直接将数据库切换到恢复模式,绝对不会有写 *** 作出现、软锁定,设置default_transaction_read_only为on,默认开启的事务为只读事务。用户如果使用begiontransactionreadwrite可破解。

PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰常有限。所以一直寻找完美的备份恢复方案。

梦里寻他千百度,伊人却在灯火阑珊处其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_dump,psql。这两个指令 在数据库的安装目录下,比如我自己本地安装的,路径形如:C:\Program Files\PostgreSQL\95\;然后进入到bin文件夹,会看到不少的exe文件,这就是PostgreSQL内置的工具了。里面会找到 pg_dumpexe,psqlexe两个文件。我们怎么用他们?

用法:

备份数据库,指令如下:

pg_dump -h 1648223354 -U postgres databasename > C:\databasenamebak

开始-运行-cmd d出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:

cd C:\Program Files\PostgreSQL\90\bin

最后执行备份指令:

pg_dump -h 1648223354 -U postgres databasename > C:\databasenamebak

指令解释:如上命令,pg_dump 是备份数据库指令,1648223354是数据库的ip地址(必须保证数据库允许外部访问的权限哦~),当然本地的数据库ip写 localhost;postgres 是数据库的用户名;databasename 是数据库名。> 意思是导出到C:\databasenamebak文件里,如果没有写路径,单单写databasenamebak文件名,那么备份文件会保存在C: \Program Files\PostgreSQL\90\bin 文件夹里。

恢复数据库,指令如下:

psql -h localhost -U postgres -d databasename < C:\databasenamebak(测试没有成功)

pg_restoreexe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasenamebackup"(测试成功)

指令解释:如上命令,psql是恢复数据库命令,localhost是要恢复到哪个数据库的地址,当然你可以写上ip地址,也就是说能远程恢复(必须保证 数据库允许外部访问的权限哦~);postgres 就是要恢复到哪个数据库的用户;databasename 是要恢复到哪个数据库。< 的意思是把C:\databasenamebak文件导入到指定的数据库里。

以上所有的是针对windows而言的,如果在linux下,会不会有效?

在linux里依然有效。有一个值得注意的是:如果直接进入PostgreSQL的安装目录bin下,执行命令,可能会出现 找不到pg_dump,psql的现象,我们在可以这样:

备份:

/opt/PostgreSQL/95/bin/pg_dump -h 1648223354 -U postgres databasename > databasenamebak

恢复:

/opt/PostgreSQL/95/bin/psql -h localhost -U postgres -d databasename < databasenamebak

以上就是关于如何快速将postgresql 转换为mysql全部的内容,包括:如何快速将postgresql 转换为mysql、如何在PostgreSQL中备份一张表(包含表结构)和恢复、pg数据库是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10140486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存