- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
很久以前,在一个遥远的系统上…
尝试将数据库从mysql迁移到postgresql。我读过的所有文档都非常详细地介绍了如何迁移结构。我几乎没有找到关于迁移数据的文档。该架构有13个表(已成功迁移)和9 GB的数据。
MySQL版本:5.1.x
PostgreSQL版本:8.4.x
我想用r编程语言用sql select语句来分析数据,postgresql有pl/r,mysql没有pl/r(据我所知)。
新的希望
创建数据库位置(/var
空间不足;也不喜欢到处都有PostgreSQL版本号——升级会破坏脚本!):sudo mkdir -p /home/postgres/main
sudo cp -Rp /var/lib/postgresql/8.4/main /home/postgres
sudo chown -R postgres.postgres /home/postgres
sudo chmod -R 700 /home/postgres
sudo usermod -d /home/postgres/ postgres
一切都很好。接下来,重新启动服务器并使用以下命令配置数据库:sudo apt-get install postgresql pgadmin3
sudo /etc/init.d/postgresql-8.4 stop
sudo vi /etc/postgresql/8.4/main/postgresql.conf
将data_directory
更改为/home/postgres/main
sudo /etc/init.d/postgresql-8.4 start
sudo -u postgres psql postgres
\password postgres
sudo -u postgres createdb climate
pgadmin3
使用pgadmin3
配置数据库并创建架构。
这一事件在一个名为bash
的远程shell中继续,两个数据库都在运行,并且安装了一组带有相当不寻常徽标的工具:installation instructions。perl Makefile.PL
sudo make install
sudo apt-get install perl-doc
(奇怪的是,它没有被称为perldoc
)perldoc SQL::Translator::Manual
提取PostgreSQL友好的DDL和所有MySQL
数据:sqlt -f DBI --dsn dbi:mysql:climate --db-user user --db-password password -t PostgreSQL > climate-pg-ddl.sql
编辑climate-pg-ddl.sql
并将标识符转换为小写,然后插入模式引用(使用vim)::%s/"\([A-Z_]*\)"/\L\1/g
:%s/ TABLE / TABLE climate./g
:%s/ on / on climate./g
mysqldump --skip-add-locks --complete-insert --no-create-db --no-create-info --quick --result-file="climate-my.sql" --databases climate --skip-comments -u root -p
只需将mysql中的表和列重命名为小写就可以了:select concat( 'RENAME TABLE climate.', TABLE_NAME, ' to climate.', lower(TABLE_NAME), ';' ) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='climate';
执行上一步中的命令。
可能有一种方法可以对列执行同样的操作;我手动更改它们,因为这比找出如何编写查询要快。
数据库反击
在PostgreSQL中重新创建结构如下:pgadmin3
(切换到它)
单击“执行任意SQL查询”图标
打开climate-pg-ddl.sql
搜索“替换为”(插入架构名称)
搜索“替换为”(插入架构名称)
按TABLE "
执行
这将导致:
Query returned successfully with no result in 122 ms.
TABLE climate."
转换为
climate
以便对PostgreSQL执行它们?
最佳答案
我通常为这种迁移做两方面的工作:
从MySQL中提取整个数据库定义,并使其适应PostgreSQL语法。
检查数据库定义并转换它,以利用PostgreSQL中MySQL中不存在的功能。
然后进行转换,用您最熟悉的语言编写一个程序,完成以下任务:
从MySQL数据库中读取数据。
对要存储在PostgreSQL数据库中的数据执行任何必要的转换。
将现在转换的数据保存在PostgreSQL数据库中。
为PostgreSQL重新设计表以利用其特性。
如果您只需要使用sed
脚本将SQL转储从一种格式转换为下一种格式,那么您所要做的就是将MySQL数据库放入PostgreSQL服务器。您可以这样做,这样做仍然会有一些好处,但是如果您要迁移,请完全迁移。
这将需要更多的前期时间,但我还没有遇到一个不值得的情况。
关于mysql - 在Linux(Kubuntu)上从MySQL迁移到PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831009/
我正在尝试安装以下数据库:aleda-latest.zip 在 Konsole 中,我键入以下命令: $ make install output: bzcat ne_vars.fr.dat.bz2 >
我刚刚升级到 Kubuntu 15.04,MySQL 不再正常工作。错误是: ERROR 2002 (HY000): Can't connect to local MySQL server throu
我正在尝试使用 Qt Creator 编写我的第一个 Linux 应用程序。有时,在调试过程中,我编写的代码会导致我的应用程序进入某种无限循环。 这会导致我的 KDE session 卡住。使用调试器
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是 on-topic用于堆栈溢出。 已关闭10 年前。 Improve t
我必须编译源代码才能获得可执行文件。但是,由于存在括号,make 命令无法编译,并显示以下错误消息: sh: 4: Syntax error: "(" unexpected (expecting ")
很久以前,在一个遥远的系统上… 尝试将数据库从mysql迁移到postgresql。我读过的所有文档都非常详细地介绍了如何迁移结构。我几乎没有找到关于迁移数据的文档。该架构有13个表(已成功迁移)和9
我通过 VirtualBox 安装了 kubuntu 14.04。 我试图通过设置更改分辨率,但我只有一个选项:640X480。 我知道我需要安装 guest 添加,但是当我尝试这样做时 “设备”->
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我在笔记本电脑上使用 Kubuntu 和 Windows 7 已经有一段时间了。最近我也开始使用 git 来跟踪我正在进行的项目。起初我以为我会使用相同的 git repo 从 Kubuntu 和 W
我正在尝试编译一个使用 QtSerialPort 的项目,但出现链接错误 g++ -m64 -Wl,-O1 -o eTerm main.o eterm.o tcpclient.o tcpserver.
我正在做一个与 kubuntu 的配置和内存分析器相关的项目。我想使用里程表以图形方式显示系统统计信息,如 CPU 使用率、RAM 使用率和进程等。我想知道是否有任何伟大的开源库用于图形组件,如里程表
我已经从源 .java 文件创建了一个 .jar 文件,我试图从终端执行它但显示以下错误:无法从中加载 Main-Class list 属性我的类.jar 请有人帮忙。 提前致谢。 最佳答案 试试吧-
我大家 启动后,如果可能的话,我想打开一个 shell 并自动运行一个简单的 C++ 程序!很难吗? airone@airone:~$ sudo ./provaccc [sudo] password
my environment: kubuntu : 3.2.0-generic-pae vmware player: VMware-Player-4.0.4-744019.i386.bundle 我
我在我的四台电脑上安装了 Kubuntu 14.10 和 15.04,它们都有不同的硬件(最旧的机器是 2007 年组装的,最新的是一个月前组装的。我同时安装了 32 位和 64 位操作系统。数量RA
https://www.digitalocean.com/community/tutorials/how-to-install-and-get-started-with-phalcon-on-an-u
我一直在毫无问题地访问 H2 数据库,直到我将 Ubuntu 16.04 LTS(这对我来说是一场灾难 - Ubuntu,而不是升级)升级到 KUbuntu 18.04(工作得更好)。现在,由于我不明
我希望使用 Akka actor 模块。我在 Kubuntu 中使用 Eclipse。我从 akka 网站下载了 .zip 存档,转到: Project->Properties->Java Build
这个官方我用过tutorial设置我的机器,以便它可以检测到我的 Android 设备。但出于某种原因,ADB 没有正确检测到我的任何设备(Hero 和 Magic),即它没有显示设备的 IMEI 或
我是一名优秀的程序员,十分优秀!