MySQL转PostgreSQL数据库迁移指南:实操步骤详解

创始人
2024-12-29 20:07:48
0 次浏览
0 评论

postgresql的数据库怎么迁移到mysql-CSDN论坛

将MySQL数据库迁移到PostgreSQL后,查了很多资料,尝试了一些东西。
最终使用的方法如下:1、导出mysql表定义(无数据)mysqldump--no-data[dbname]>dbdef.sql2。
使用mysql2postgres转换脚本转换为pgsql3上面生成的脚本不一定是完美的。
你可以尝试导入pgsql,手动调试修改。
我遇到的问题只有一个。
必须手动删除mysql列定义中的Zerofill。
一些未签名的定义会生成约束,如果不需要,可以将其删除。
另外,所有触发器都有问题,只能稍后手动重建。
[dbname]>dbdata.sql如果某些旧版本的pgsql不支持批量插入,请添加--extended-insert=FALSE这会造成很大的性能损失。
5、mysql默认字符串中的转义符‘\’是转义符,但是pgsql默认不是修改postgresql.conf:backslash_quote=onescape_string_warning=offstandard_conforming_strings=off,修改回默认值即可数据。
导入完成。
5、导入pgsql中的表定义和数据psql-d[dbname]您可以使用以下语句设置自动增量列的当前值:SELECTsetval('sample_id_seq',max(id))fromsample。
最后,如果数据量较大,可以先放;导入时考虑的主键、索引和约束。
将它们全部删除并在导入完成后添加它们。
此外,psql客户端似乎不够快,无法从管道导入数据。
您可以使用tcp模式psql-hlocalhost。
以下是一个粗略列表:=minimalarchive_mode=offfull_page_writes=offfsync=offcheckpoint_segments=50checkpoint_timeout=1hmaintenance_work_mem应尽可能大,具体取决于内存情况。

关于MYSQL数据库不能导入的问题,请教大神。

此错误意味着您没有创建数据库的权限。
在CREATEDATABASEIFNOTEXISTS`mvm`DEFAULTCHARACTERSETf8COLLATEutf8_general_ci前面添加--并在创建数据库时注释掉--CREATED。
ATBASEIFNOTEXISTS`mvm`默认字符集utf8COLLATEutf8_general_ci;导入MySQL数据库有两种方法:1)先导出数据库SQL脚本,然后导入2)直接复制数据库文件夹和文件。
如果操作系统或MySQL版本不同,直接文件复制方法可能不兼容。
因此,通常建议导入为SQL脚本。
下面介绍两种方法。
2.SQL脚本形式的方法1的步骤如下:2.1.导出SQL脚本。
在原数据库服务器上,可以使用phpMyAdmin工具或mysqldump命令行导出SQL脚本。
2.1.1在使用phpMyAdmin工具的导出选项中,选择“结构”和“数据”导出,不要添加“DROPDATABASE”和“DROPTABLE”选项。
选择“另存为文件”选项。
如果您有大量数据,可以选择“gzipped”选项。
保存导出的SQL文件。
2.1.2使用命令行命令格式mysqldumpmysqldump-u用户名-p数据库名>数据库名.sql例如:mysqldump-uroot-pabc>abc.sql(导出数据库abc到abc.sql文件)当提示输入密码时,输入该数据库用户名的密码。
2.2.通过主控制台/控制台创建一个空数据库。
假设数据库名称为abc,完整数据库用户为abc_f。
2.3.导入并执行SQL脚本有两种方法,一种是使用phpMyAdmin工具(mysql数据库管理器)或mysql命令行。
2.3.1使用phpMyAdmin工具在控制面板中选择创建的空数据库,点击“管理”进入管理工具页面。
在“SQL”菜单中,浏览选择刚刚导出的SQL文件,然后单击“执行”上传并执行。
注意:phpMyAdmin对上传文件的大小有限制。
PHP本身对于上传文件的大小也有限制。
如果原始sql文件比较大,可以先使用gzip进行压缩。
您可以获得1:5或更高的压缩比。
如何使用gzip:#gzixxxxxx.sql获取文件xxxxx.sql.gz。
当提示输入密码时,输入数据库用户名的密码。
3直接复制如果数据库比较大,可以考虑使用直接复制的方法,但不同版本和操作系统可能不兼容,所以使用时要谨慎。
3.1准备原文件,打包成tar文件3.2创建空数据库3.3解压并解压到临时目录,如:cd/tmptarzxfmydb.tar.gz3.4复制将解压后的数据库基文件复制到相关目录cdmydb/cp*/var/lib/mysql/mydb/forFreeBSD:cp*/var/db/mysql/mydb/3.5权限设置将复制文件的所有者更改为mysql:mysql,权限更改为660chownmysql:mysql/var/lib/mysql/mydb/*chmod660/var/lib/mysql/mydb/*
文章标签:
MySQL PostgreSQL
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...