postgreSql修改端口后psql命令行链接报错”/tmp/.s.PGSQL.5432“

问题

今天修改pg的端口号port改成54328后重启完数据库的时候直接psql进库的时候进不去

[postgres@iZ8vbifqgkwljcq9ccpkg7Z data]$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432

解决方案

这时,进数据库有两种方式

  1. psql 后面加上端口号
[postgres@iZ8vbifqgkwljcq9ccpkg7Z ~]$ psql
Password for user postgres: 
psql (12.7)
Type "help" for help.

postgres=# 
  1. 在环境变量/usr/local/pgsql/.bash_profile中加上一句,添加完source下
[postgres@iZ8vbifqgkwljcq9ccpkg7Z ~]$ vi .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export PGPORT=54328 #自己添加的环境变量

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

一些操作心得

  1. 安装完数据库或者其他常用软件,记得修改默认端口,密码加密和复杂设置,防止糟病毒(或者挖矿软件)攻击

笔者就因为使用了默认的用户postgres(密码同)遇到了挖矿软件的攻击,因为放开了对外的访问权限(配置文件的IP:0.0.0.0 all all ),防火墙也没有设置安全策略,病毒暴力破解了密码,登录系统后在此用户的目录下生成”authorized_keys“文件,里面存放了RSA公钥,对方服务器就可以携带已知的公钥进行免密登录(即使你修改数据库用户密码也无济于事),并且在你的用户目录下的.bash_profile环境变量中追加curl ……a.sh这样的下载矿机脚本指令(即时你删除病毒,每当你切换用户的时候就会重新下载执行),它会下载到隐藏的目录下…的下面(比如/var/tmp/…/***),可以通过find / -name …进行查找并删除,同时删除top下的非正常进程和authorized_keys文件。

  1. postgreSql安装后会创建postgres系统用户作为数据库的默认用户,需要切换到su - postgres用户下进行数据库的操作,psql进行连接登录
  2. 分区的数据表通过Navicat客户端导出*.sql文件,再导入会有错误,可以通过psql自己客户端进行数据库完整导出导入:
1、在服务器A上导出文件
pg_dump -h 127.0.0.1 -p 5432 -U postgres -d 数据库名>c:\mydb.bak

2、在B服务器上创建同名数据库
postgres=# create database 数据库名 <owner username>; -- 创建数据库指定所属者,不指定默认当前的用户postgres
CREATE DATABASE
postgres=#

3、将文件拷到服务器B上面,执行如下命令
psql -h 127.0.0.1 -p 5432 -U postgres -d 数据库名 –f /usr/data/mydb.bak
(已登录:psql -d 数据库名 -U postgres -f dump.sql)

  1. 更改数据库密码

postgres=# ALTER USER postgres WITH PASSWORD ‘123456’; #设置密码
ALTER ROLE
postgres=#

  1. 控制台命令

\q:退出
\h:查看SQL命令的解释,比如\h select。
?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。

  1. 数据库操作

–创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
–插入数据
INSERT INTO user_tbl(name, signup_date) VALUES(‘张三’, ‘2013-12-22’);
–选择记录
SELECT * FROM user_tbl;
–更新数据
UPDATE user_tbl set name = ‘李四’ WHERE name = ‘张三’;
–删除记录
DELETE FROM user_tbl WHERE name = ‘李四’ ;
–添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
–更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
–更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
–删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
–表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
–删除表格
DROP TABLE IF EXISTS backup_tbl;

猜你喜欢

转载自blog.csdn.net/wo240/article/details/121651616