大家好,又见面了,我是你们的朋友全栈君。
问题
今天修改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
解决方案
这时,进数据库有两种方式
- psql 后面加上端口号
[postgres@iZ8vbifqgkwljcq9ccpkg7Z ~]$ psql
Password for user postgres:
psql (12.7)
Type "help" for help.
postgres=#
- 在环境变量/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
一些操作心得
- 安装完数据库或者其他常用软件,记得修改默认端口,密码加密和复杂设置,防止糟病毒(或者挖矿软件)攻击
笔者就因为使用了默认的用户postgres(密码同)遇到了挖矿软件的攻击,因为放开了对外的访问权限(配置文件的IP:0.0.0.0 all all ),防火墙也没有设置安全策略,病毒暴力激活成功教程了密码,登录系统后在此用户的目录下生成”authorized_keys“文件,里面存放了RSA公钥,对方服务器就可以携带已知的公钥进行免密登录(即使你修改数据库用户密码也无济于事),并且在你的用户目录下的.bash_profile环境变量中追加curl ……a.sh这样的下载矿机脚本指令(即时你删除病毒,每当你切换用户的时候就会重新下载执行),它会下载到隐藏的目录下…的下面(比如/var/tmp/…/***),可以通过find / -name …进行查找并删除,同时删除top下的非正常进程和authorized_keys文件。
- postgreSql安装后会创建postgres系统用户作为数据库的默认用户,需要切换到su – postgres用户下进行数据库的操作,psql进行连接登录
- 分区的数据表通过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
- 更改数据库密码
postgres=# ALTER USER postgres WITH PASSWORD ‘123456’; #设置密码
ALTER ROLE
postgres=#
- 控制台命令
\q:退出
\h:查看SQL命令的解释,比如\h select。
?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
- 数据库操作
–创建新表
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;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151005.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...