最近,公司要求某网站改版,需要把网站程序和数据库下载下来给程序员。程序文件很简单,打个压缩包直接下载即可。当我查看配置文件查看数据库时,傻眼了,数据库类型为postgresql,以前听都没听过的数据类型,更别说操作了。没办法,只能硬着头皮往下走了。百度一番,查看如何将postgresql导出来吧。
导出数据库结构及
#su�postgres
#pg_dump-Upostgres etbtz -f/var/lib/pgsql/etbtz.sql
以为导出数据就万事大吉了,过了几天,程序员又来了,说是要部署到开发本地。让我帮忙转换成数据库类型为MysqL。
使用连接数据库的工具NavicatPremium远程连接服务器,各项配置添加完之后发现服务器拒绝连接。肯定需要在postgresql服务器上设置允许远程连接。
安装Postgresql数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问Postgresql数据库服务器,就需要进行相应的配置。配置远程连接Postgresql数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf,其中pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置Postgresql数据库服务器的相应的参数。下面介绍配置的步骤:
#TYPEDATABASEUSERCIDR-ADDRESSMETHOD
#"local"isforUnixdomainsocketconnectionsonly
localallalltrust
#IPv4localconnections:
hostallall127.0.0.1/32trust
hostallall192.168.1.0/24md5
#IPv6localconnections:
hostallall::1/128trust
其中红色标识的内容为新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。在我们的环境中,我们需要在主机192.168.1.5上使用postgres用户访问192.168.1.9上的Postgresql数据库。
2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。
定位到#listen_addresses='localhost'。Postgresql安装完成后,默认是只接受来在本机localhost的连接请求,通过将改行内容修改为listen_addresses='*'来允许数据库服务器监听来自任何主机的连接请求:
listen_addresses='*'#whatIPaddress(es)tolistenon;
#comma-separatedlistofaddresses;
#defaultsto'localhost','*'=all
#(changerequiresrestart)
修改之后,保存并退出,然后重起数据库,就可以在在远程机器上访问Postgresql数据库了。
重启数据库:servicepostgresqlrestart
再次尝试本地连接,这时候发现已经可以连接了。
在网上搜集了一些关于postgresql转MysqL的文章,大多都是说先从postgresql中导出sql脚本,然后把sql脚本中的一些写法手动改成MysqL格式的,心想着如果是一个大数据公司,要将数据转储为MysqL,也同样手动改?
www.2cto.com
于是找到了一个各数据库之间的转换工具DBConvertforMysqL&Postgresql,可实现数据库之间的转换,非常方便,当然大家都知道方便的软件肯定不费免费给你,安装这个软件后,点试用,可以让你有一段时间的使用时间,进去即可对数据库时间进行转换了。
步骤一:点试用
步骤二:选择数据源并连接相应数据源的数据库,我这里是postgresql,选择相应要转换的database,测试连接成功后点下一步
步骤三:下一步则是填写目标数据库的连接和目标database,我的目标数据库是MysqL
步骤四:点下一步即可看到相应的表和表结构,点下一步执行即可。
只要该填的地方没填错,整个转换过程非常流畅,在这里不得不佩服国外友人的技术之强大啊。
附下载地址:http://dbconvert.com/convert-mysql-to-postgresql-pro.PHP?DB=3