最近,公司要求某网站改版,需要把网站程序和数据库下载下来给程序员。程序文件很简单,打个压缩包直接下载即可。当我查看配置文件查看数据库时,傻眼了,数据库类型为postgresql,以前听都没听过的数据类型,更别说操作了。没办法,只能硬着头皮往下走了。百度一番,查看如何将postgreSQL导出来吧。
导出数据库结构及
#su �C postgres
# pg_dump -U postgres etbtz -f /var/lib/pgsql/etbtz.sql
以为导出数据就万事大吉了,过了几天,程序员又来了,说是要部署到开发本地。让我帮忙转换成数据库类型为mysql。
使用连接数据库的工具Navicat Premium远程连接服务器,各项配置添加完之后发现服务器拒绝连接。肯定需要在postgresQL服务器上设置允许远程连接。
如何配置来完成PostgreSQL数据库远程连接
安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。配置远程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf, 其中pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置PostgreSQL数据库服务器的相应的参数。下面介绍配置的步骤:
1.修改pg_hba.conf文件,配置用户的访问权限:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
# IPv6 local connections:
host all all ::1/128 trust
其中红色标识的内容为新添加的内容,表示允许网段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 = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)
修改之后,保存并退出,然后重起数据库,就可以在在远程机器上访问PostgreSQL数据库了。
重启数据库:service postgresql restart
再次尝试本地连接,这时候发现已经可以连接了。
postgresql转mysql工具
在网上搜集了一些关于postgresql 转mysql的文章,大多都是说先从postgresql 中导出sql 脚本,然后把sql 脚本中的一些写法手动改成mysql 格式的,心想着如果是一个大数据公司,要将数据转储为mysql ,也同样手动改?
www.2cto.com
于是找到了一个各数据库之间的转换工具 DBConvert for MySQL & PostgreSQL,可实现数据库之间的转换,非常方便,当然大家都知道方便的软件肯定不费免费给你,安装这个软件后,点试用,可以让你有一段时间的使用时间,进去即可对数据库时间进行转换了。
步骤一:点试用
步骤二:选择数据源并连接相应数据源的数据库,我这里是postgresql,选择相应要转换的database,测试连接成功后点下一步
步骤三:下一步则是填写目标数据库的连接和目标database,我的目标数据库是mysql
步骤四:点下一步即可看到相应的表和表结构,点下一步执行即可。
只要该填的地方没填错, 整个转换过程非常流畅,在这里不得不佩服国外友人的技术之强大啊。
附下载地址:http://dbconvert.com/convert-mysql-to-postgresql-pro.php?DB=3