Я жонглировал версиями Postgresql и, кажется, выстрелил себе в ногу во время переименования чего-то. У меня на станции Ubuntu 14.04 установлены версии 9.3 и 9.4, и я хотел вернуться к версии 9.3, поэтому я проделал некоторую «файловую операцию», чтобы это произошло. Где-то по ходу дела, я думаю, я переименовал, и теперь, когда я выдаю команду:
sudo /etc/init.d/postgresql start
Я получаю следующий вывод ошибки:
* Starting PostgreSQL 9.3 database server
* Failed to issue method call: Unit postgresql@9.3-main.bak.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.3-main.bak.service' for details.
[fail]
* Starting PostgreSQL 9.4 database server
* Failed to issue method call: Unit postgresql@9.4-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.4-main.service' for details.
Я выполнил команду systemctl status, как указано в сообщении об ошибке для 9.3, и получил следующее:
postgresql@9.3-main.bak.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Как видно из main.bak.service строка вывода, как-то postgresql подобрал переименование. (Однако я не вижу файла с именем «service» в дереве каталогов.)
Я заглянул в свой файл конфигурации для postgresql и нигде не вижу этого каталога:
data_directory = '/var/lib/postgresql/9.3/main' # use data in another directory
# (change requires restart)
hba_file = '/etc/postgresql/9.3/main/pg_hba.conf' # host-based authentication file
# (change requires restart)
ident_file = '/etc/postgresql/9.3/main/pg_ident.conf' # ident configuration file
# (change requires restart)
У меня нет установленной переменной среды PGROOT или PGDATA, поэтому я не думаю, что это так? Кроме того, как вы можете видеть из команды, которую я использую для запуска postgresql, я не указываю файл конфигурации явно. Есть ли где-то плохая символическая ссылка, о которой я не знаю? Как я могу это исправить?
Откуда postgresql берет ссылку на файл main.bak.service?
Кроме того, следует ли использовать запуск postgresql с помощью postgresql счет вместо корень (su vs sudo)? Моя установка раньше работала, поэтому я все испортил, поэтому я не думаю, что это проблема, если запуск с правами root - это плохо. Но я хотел бы знать, какую учетную запись пользователя использовать при запуске postgresql.