最近发现一个数据库,好像可以用,于是做了一个调查,把一般常用的和可能踩的坑都查了一下方法,记录了一下,以后可以使用.
Posted 再前一步~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近发现一个数据库,好像可以用,于是做了一个调查,把一般常用的和可能踩的坑都查了一下方法,记录了一下,以后可以使用.相关的知识,希望对你有一定的参考价值。
怎么使用postgresql
- 调查知悉,postgresql是Plsql类型的数据库, 与oracle对标, 而且是关系对象型数据库,这点觉得很有用啊,个人感觉,因为可以一起存关系数据和对象了. 据说是免费开源的数据库,那就可以和mysql一较了,这样用起来也安心了.
- postgresql在.net core下的使用, 观察到ef core是支持的,这样使用起来数据层可以不需要过多考虑了.
- 布置方面,安装到机器上, linux下使用 sudo -i -u postgres, 这方面进入命令行,之后可以使用\help {command} 来查询命令用法, 具体语法简单的增删改查和sql无异,可以使用起来.
- 运行应用: 目前机器已经安装到了最新版本的dotnetcore, 3.1.1
- Postgresql 使用plsql语法:
select * from public.test --insert into public.test values (1,‘Calo‘) |
- 当前使用pgadmin web控制端登陆postgresql 来使用
- dotnetcore中使用时连接postgresql的连接字符串是,放在connectionString下面
"PostgreSql": "User ID=postgres;Password=123456;Host=localhost;Port=5432;Database=AddressMatch_db" |
一般的用法和其他的efcore的方式一样使用
- Postgresql的默认端口是5432
- 找到的修改postgresql端口的方法
1,进入postgresql,点击data 2,找到postgresql.conf文件 3,找到port行,修改port的值 4,打开运行,输入services.msc命令 5,定位到postgresql服务 6,最后重新启动服务即可
|
- Postgresql要开启远程访问的方法
postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件: 1.postgresql.conf 将该文件中的listen_addresses项值设定为“*”,在9.0 Windows版中,该项配置已经是“*”无需修改。 2.pg_hba.conf 在该配置文件的host all all 127.0.0.1/32 md5行下添加以下配置,或者直接将这一行修改为以下配置 host all all 0.0.0.0/0 md5 如果不希望允许所有IP远程访问,则可以将上述配置项中的0.0.0.0设定为特定的IP值。
|
- Postgresql本机的pgadmin默认是http://127.0.0.1:51107/browser
- Postgresql默认安装后,会创建用户名: postgres
- Postgresql 在linux平台上默认是使用su 切换到postgres 用户来进行操作的, su - postgres
su - postgres Psql CREATE USER dbuser WITH PASSWORD ‘*****‘; CREATE DATABASE exampledb OWNER dbuser; GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser; \q $ sudo adduser dbuser $ sudo passwd dbuser 可以以普通Linux用户名,在数据库中创建同名的用户和数据库,如xxf,然后就可以本机直接连接到数据库xxf了。 /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/pg_hba.conf sudo systemctl restart postgresql 以上为linux上管理postgresql的命令,包括系统用户和数据库用户还有远程访问和端口配置.
|
- 远程访问postgresql
psql -h 远程数据库IP地址 -U 用户名 |
- Postgresql 重置密码的方法:
1、关闭数据库服务
2、进入数据库的工作空间目录 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录)
3、编辑修改文件 pg_hba.conf, 把连接权限设置的 md5 加密方式 改成 trust,两个IPV4都要修改
为例,原本设置是
# IPv4 local connections: host all all 127.0.0.1/32 md5
修改为
# IPv4 local connections: host all all 127.0.0.1/32 trust 4、重新新启动postgresql数据库服务
5、可以不用密码就能用postgres用户登陆,然后执行修改用户密码的操作
alter user postgres with password ‘foobar‘;
6、修改 pg_hba.conf 文件,改回到 md5 方式,再重启数据库服务设置完成。
|
- 初始化postgresql
初始化数据库 initdb.exe <datafolderpath> pgsql/bin 启动数据库 "pg_ctl" -D "<datafolderpath>" -l logfile start
|
- Win10 默认不将pgsql加入环境变量, 可以手动加, 也可以先直接打开路径:
cd C:\Program Files\PostgreSQL\10\bin
psql -p 5433 -U postgres -d postgres
# psql -p 端口号 -U 用户名(默认为postgres) -d 数据库名(默认为postgres) cd C:\Program Files\PostgreSQL\10\bin psql --version # 查看数据库版本号 |
- Linux 使用 yum 安装postgresql
yum search postgresql yum install postgresql-server [root@client usr]# which psql/usr/bin/psql[root@client sbin]# which postgresql-setup/usr/bin/postgresql-setup[root@client sbin]# whereis postgresql-setup postgresql-setup initdb #cd /var/lib/pgsql # ll data service postgresql start 启动成功,会监听本机127.0.0.1的5432端口 默认情况下,我们使用psql postgres命令登录,使用的是root用户,会提示没有这个角色,我们按照提示使用psql -U postgres命令登录,发现提示Peer authentication failed for user "postgres",我们只能切换到postgres用户,然后直接登录, 将local一行的md5改为trust, 即可本地使用root登陆,而不用切换到postgre用户. 在本机,修改密码有两种方式:直接\password 的方式和通过alter user postgres with password ‘postgres‘语句: |
- Postgresql 备份和还原
备份: pg_dump -U postgres -d myDBname -f dump.sql 还原: createdb newDBname psql -d newDBname -U postgres -f dump.sql
|
以上是关于最近发现一个数据库,好像可以用,于是做了一个调查,把一般常用的和可能踩的坑都查了一下方法,记录了一下,以后可以使用.的主要内容,如果未能解决你的问题,请参考以下文章