最近需要把一个项目的pg sql数据库迁到另一个服务器里面1、在原服务器中导出数据库# 导出 mydb 数据库结构 数据 sudo -u postgres pg_dump -Fc -f /tmp/mydb_backup.dump mydb # 检查一下应该有正常文件大小 ls -lh /tmp/mydb_backup.dump2、在原服务器上把导出文件传到新服务器记得新服务器上的根目录下创建/tmp/文件夹scp /tmp/mydb_backup.dump ubuntu新服务器IP:/tmp/3、把原来数据库的用户数据库和权限都在新服务器上重新创建好# 创建角色和数据库 sudo -u postgres psql SQL CREATE USER myapp WITH PASSWORD qwer; CREATE DATABASE mydb OWNER myapp; GRANT ALL PRIVILEGES ON DATABASE mydb TO myapp; SQL # 让 myapp 用户有建表等权限连接到 mydb 后再授权 sudo -u postgres psql -d mydb SQL GRANT ALL ON SCHEMA public TO myapp; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO myapp; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO myapp;4、还原数据sudo -u postgres pg_restore -d mydb --clean --if-exists --no-owner /tmp/mydb_backup.dump5、验证一下表结构和内容之类的即可# 查看所有表 sudo -u postgres psql -d mydb -c \dt # 查看表结构 sudo -u postgres psql -d mydb -c \d users # 查一下数据量 sudo -u postgres psql -d mydb -c SELECT count(*) FROM users;