После того, как postgreSql изменяет порт, ссылка командной строки psql сообщает об ошибке «/tmp/.s.PGSQL.5432».

вопрос

Сегодня я изменил номер порта pg на 54328. После перезапуска базы данных я не смог ввести psql напрямую в базу данных.

[postgres@iZ8vbifqgkwljcq9ccpkg7Z data]$ psql
psql: не удалось подключиться к серверу: такого файла или каталога нет.
Сервер работает локально и принимает
соединения через сокет домена Unix "/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 и добавьте источник.
[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 все все), брандмауэр не установил политика безопасности и вирус. После грубого взлома пароля в каталоге пользователя после входа в систему создается файл "authorized_keys", в котором хранится открытый ключ RSA. Другой сервер может хранить известный открытый ключ для пароля. -бесплатный вход в систему (даже если вы измените пароль пользователя базы данных, это не поможет)), и добавьте cur...a.sh в переменную среды .bash_profile в вашем пользовательском каталоге, чтобы загрузить инструкции скрипта майнера (даже если вы удалите вирус, он будет загружаться и запускаться снова каждый раз при смене пользователя). Он будет загружен в скрытый каталог... (например, /var/tmp/.../***). Вы можете найти и удалить это через find/-name... и одновременно удалите ненормальные процессы и файлы авторизованных_ключей сверху.

  1. После установки postgreSql системный пользователь postgres будет создан в качестве пользователя базы данных по умолчанию. Вам необходимо переключиться на пользователя su — postgres для выполнения операций с базой данных и psql для подключения и входа в систему.
  2. Таблица секционированных данных экспортируется в виде файла *.sql через клиент Navicat. При повторном импорте возникнут ошибки. Вы можете использовать клиент 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 [имя_базы_данных]: подключение к другим базам данных.
\d: список всех таблиц в текущей базе данных.
\d [имя_таблицы]: список структуры определенной таблицы.
\du: Список всех пользователей.
\e: Откройте текстовый редактор.
\conninfo: отображает текущую базу данных и информацию о соединении.

  1. Операции с базой данных

–Создать новую таблицу
CREATE TABLE user_tbl(name VARCHAR(20), Signup_date DATE);
–Вставить данные
INSERT INTO user_tbl(name, Signup_date) VALUES('Zhang San', '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;
– Удалить лист
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ backup_tbl;

Guess you like

Origin blog.csdn.net/wo240/article/details/121651616
Recommended