Ошибка Postgres «недопустимое значение параметра« TimeZone »:« UTC »

89
Jupitor$ bundle exec rake db:create db:migrate
APP_development already exists
rake aborted!
PG::Error: ERROR:  invalid value for parameter "TimeZone": "UTC"
: SET time zone 'UTC'

Я продолжаю получать эту ошибку при попытке перейти на мою базу данных postgres. помощь будет очень признательна!

Стивен Нгуен
источник
2
Команда SET time zone 'UTC'работает в моей установке PostgreSQL 9.1.4.
Эрвин Брандштеттер
1
Какую версию PostgreSQL вы используете? Работает ли SET time zone 'UTC'у вас в консоли psql?
Марк Стосберг
Я использую 9.1.4, где / как мне ввести УСТАНОВИТЬ часовой пояс «UTC»?
Стивен Нгуен
1
Jupitor = # УСТАНОВИТЬ часовой пояс 'UTC'; ОШИБКА: недопустимое значение параметра «TimeZone»: «UTC»
Стивен Нгуен,
1
Postgres (v.9.2.4) не любит UTC, используйте вместо него «GMT».
PhoebeB 09

Ответы:

135

У меня была такая же проблема с Postgres.app от Heroku. Перезагрузка моего Mac решила это.

MathiasJ
источник
2
Действительно странно, попробовал перезапустить приложение и установить часовой пояс. Ни то, ни другое не работало, потом перезагрузил Mac и бум, никаких проблем.
Стив
4
У меня возникла эта проблема после переустановки postgress через brew. Перезагрузка мака помогла.
Maicher
1
перезапуск postgresql после обновления устраняет проблему «pg_ctl restart»
Jerzyk
4
перезапуск postgres тоже работал у меня. Моя ошибка была ОШИБКА: неверное значение для параметра «Часовой пояс»: «Америка / Чикаго». Просто подумал, что добавлю этот комментарий, потому что я потратил время на поиск этого сообщения об ошибке, не понимая, что это также происходит для UTC
Колин Д.
1
Честно говоря, не могу поверить в это, но это действительно сработало.
Райан Сэндридж
77

Перезапуск postgresql работает.

Чтобы перезапустить, если вы установили его с помощью homebrew, brew info postgresqlвам будет предложено:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Мишель де Маре
источник
8
Правильно, это происходит потому, что PostgreSQL был обновлен, но не перезапущен.
Фред
Спасибо, я был бы удивлен, если бы перезагрузка действительно была единственным ответом.
sirdharma
6
для пивоварения вы можете перезапустить еще проще brew services restart postgresqlили, если вы используете определенную версию, что-то вродеbrew servces restart postgresql@9.6
JiuJitsuCoder
Если бы я мог проголосовать за это снова, я бы сделал это. Просто столкнулся с этой ошибкой во второй раз, поискал и обнаружил, что эта ссылка фиолетовая. Перезапуск postgres снова решил это для меня.
Kingdon
19

brew services restart postgresql

Рикардо Рувер
источник
15

Попробуйте перезапустить сервер. Я обновил Postgresql через Homebrew, но забыл перезапустить сервер и получил ту же проблему. Я считаю, что это связано с несовпадением версий клиента и сервера. psql начался с:

$ psql
psql (9.1.4, server 9.1.2)
Type "help" for help.
Турадж
источник
9

Основываясь на ответе @ MathiasJ , вместо перезагрузки всей моей машины я запустил

brew services restart postgresql@9.6

и мои последующие rake db:createсработали отлично.

ПАОПеланд
источник
1
Этот совет спас меня от перезагрузки. Благодарность!
Тим Стюарт
8

Я не думаю, что заслуживаю за это никаких очков, но перезагрузка моего Postgres.app (что лучше, чем перезагрузка всей системы) решила эту проблему для меня. Приложение не отображается в Dock, вы можете найти его на панели навигации в верхней части окна. Надеюсь, это все равно поможет.

Флавио Вуэнше
источник
4

У меня тоже была такая проблема.

Войдите в базу данных, затем введите:

set time zone utc;
Пол Мейер
источник
23
У меня не получилось. ОШИБКА: недопустимое значение параметра «TimeZone»: «utc»
Флавио Венше
4

На самом деле произошло то, что вы обновили сервер postgresql и очистили свои старые папки, но не перезапустили сервер postgresql. Сервер искал файлы часовых поясов в удаленном каталоге

Кристиан Бика
источник
4

Если ничего не помогает, и вы используете homebrew , скорее всего, у вас проблемы с текущими ссылками.

Предполагая, что у вас установлены две Postgresверсии, убедитесь, что вы отключили связь, а затем снова установите связь. В моем случае мне нужно было, чтобы две версии работали для запуска pg_upgrade. Я postgresql95и postgresqlтак сделал:

$ brew unlink postgresql
$ brew unlink postgresql95
$ brew link postgresql95
$ brew link --overwrite postgresql 

Это заставило меня обоих работать одновременно. Надеюсь, это будет полезно, поскольку мне потребовалось немало времени, чтобы понять это!

Fagiani
источник
3

В моем случае перезапуск базы данных не помог. Обновление tzdata ( apt-get install tzdata) помогло мне.

Душан
источник
2

просто перезапуск базы данных помог. Homebrew обновил мою установку Postgres, и я еще не перезапускал ее.

глубокое пламя
источник
2

У меня возникла аналогичная проблема после обновления информации о часовом поясе, то есть загрузки базы данных IANA и компиляции с помощью zic.

Моя проблема действительно началась после перезапуска PostgreSQL. Я получил, invalid value for parameter TimeZone: UTCи повторный перезапуск не помог решить проблему.

Оказывается, после обновления информация о моем часовом поясе была полностью искажена. У меня были болтающиеся символические ссылки /usr/share/zoneinfo. Из консоли psql я получил:

mydb=# SELECT * FROM pg_timezone_names;
ERROR:  could not stat "/usr/share/zoneinfo/PRC": No such file or directory

Я удалил все такие болтающиеся символические ссылки. После этого я по крайней мере смог приступить SELECT * FROM pg_timezone_namesк работе, но все равно получил ту же invalid value...ошибку.

Что в конечном итоге решило проблему для меня, так это создание новой символической ссылки:

cd /usr/share/zoneinfo
ln -s Etc/UTC UTC

После этого, SET time zone 'UTC' заработало правильно.

Чон Бор Ли
источник
1

Просто краткая справка для тех, кто не использует Postgres.app, но запускает psql из командной строки или через launchctl. Вам нужно будет настроить следующее в зависимости от того, где находятся ваши данные и файлы журнала Postgres:

pg_ctl stop
pg_ctl start -D /usr/local/pgsql/data/ -l /usr/local/pgsql/log/server.log
Джоуи
источник
Я сделал именно это. Я привык запускать / останавливать postgres с терминала на Mac, и это сработало отлично
sebasjimenez10
1

brew services restart postgresqlне исправил для меня. Я уверен, что перезагрузка сработала бы, но я хотел выяснить причину проблемы.


Я считаю, что проблема возникла из-за двух конфликтующих версий postgresql .

Я уже postgresqlработал с сервисами пивоварения, а затем установил, postgresql@11которые остались postgresqlработать в сервисах пивоварения даже после того, как я удалил их postgresql.

Я исправил это, остановив postgresqlслужбу пивоварения, хотя ее не было в списке brew services list.


Действия по воспроизведению:

$ brew install postgresql
$ brew services start postgresql

$ brew install postgresql@11
$ brew uninstall postgresql

$ brew services start postgresql@11

Как исправить:

$ brew services stop postgresql

Открыта проблема с Homebrew, запрашивающая автоматическую остановку службы формулы при удалении.

JBallin
источник
Моя проблема заключалась в том, что я postgresql@9.5запустил, а затем установил postgresql@9.6. Несмотря на то, что я удалил 9.5, он все еще работал. Перезапуск 9.6 не исправил. Фактическое исправление заключалось в том, чтобы остановить 9.5, а затем перезапустить 9.6, и тогда это сработало.
Саймон Киссане
Удаление всего postgresql может сделать это еще хуже.
theKid
0

Видимо, то же самое происходит и с Java / JDBC при подключении к Postgres.

Решение состоит в том, чтобы указать JDBC сообщать Postgres о правильном часовом поясе пользователя при установлении соединения.

Итак, явное указание часового пояса пользователя при запуске программы помогает:

java -Duser.timezone=America/Los_Angeles com.example.MyMainClass

Заметка:

Добавляем это здесь, потому что это первый результат в Google по этой проблеме с подключением к Postgres!

Источник:

Этот комментарий Юрия на форуме поддержки Jira: https://community.atlassian.com/t5/Jira-questions/invalid-value-for-parameter-quot-TimeZone-quot-quot-US-Pacific/qaq-p/ 839426

Тедди
источник