Ошибка 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 решила это.


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


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 

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


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, запрашивающая автоматическую остановку службы формулы при удалении.


Моя проблема заключалась в том, что я 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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.