解决invalid value for parameter “lc_messages“: “zh_CN.UTF-8“

Love The Way You Lie 2023-10-08 21:55 134阅读 0赞

解决 invalid value for parameter “lc_messages”: “zh_CN.UTF-8”

起因:修改了postgresql的系统配置的lc_messages等四个字符集由en_US.UTF-8改成了zh_CN.UTF-8”,然后重新启动postgresql就报如下错误,通过定位问题出在liunx系统没有中文字符编码环境导致的。*

invalid value for parameter “lc_messages”: “zh_CN.UTF-8”
invalid value for parameter “lc_monetary”: “zh_CN.UTF-8”
invalid value for parameter “lc_numeric”: “zh_CN.UTF-8”
invalid value for parameter “lc_time”: “zh_CN.UTF-8”

启动postgresql错误日志如下

  1. [root@centos temp]# systemctl status postgresql-12.service
  2. postgresql-12.service - PostgreSQL 12 database server
  3. Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; enabled; vendor preset: disabled)
  4. Active: failed (Result: exit-code) since Fri 2023-03-24 17:04:15 CST; 3min 3s ago
  5. Docs: https://www.postgresql.org/docs/12/static/
  6. Process: 2396 ExecStart=/usr/pgsql-12/bin/postmaster -D ${PGDATA} (code=exited, status=1/FAILURE)
  7. Process: 2258 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
  8. Main PID: 2396 (code=exited, status=1/FAILURE)
  9. 3 24 17:04:15 systemd[1]: Starting PostgreSQL 12 database server...
  10. 2023-03-24 17:04:15.431 CST [2396] LOG: invalid value for parameter "lc_messages": "zh_CN.UTF-8"
  11. 2023-03-24 17:04:15.431 CST [2396] LOG: invalid value for parameter "lc_monetary": "zh_CN.UTF-8"
  12. 2023-03-24 17:04:15.432 CST [2396] LOG: invalid value for parameter "lc_numeric": "zh_CN.UTF-8"
  13. 2023-03-24 17:04:15.432 CST [2396] LOG: invalid value for parameter "lc_time": "zh_CN.UTF-8"
  14. 2023-03-24 17:04:15.432 CST [2396] FATAL: configuration file "/extdisk/database/postgresql/data/postgresql.conf" contains errors
  15. 3 24 17:04:15 systemd[1]: postgresql-12.service: Main process exited, code=exited, status=1/FAILURE
  16. 3 24 17:04:15 systemd[1]: postgresql-12.service: Failed with result 'exit-code'.
  17. 3 24 17:04:15 systemd[1]: Failed to start PostgreSQL 12 database server.

1.查看当前编码

  1. [root@centos ~]# locale
  2. LANG=en_US.UTF-8
  3. LC_CTYPE="en_US.UTF-8"
  4. LC_NUMERIC="en_US.UTF-8"
  5. LC_TIME="en_US.UTF-8"
  6. LC_COLLATE="en_US.UTF-8"
  7. LC_MONETARY="en_US.UTF-8"
  8. LC_MESSAGES="en_US.UTF-8"
  9. LC_PAPER="en_US.UTF-8"
  10. LC_NAME="en_US.UTF-8"
  11. LC_ADDRESS="en_US.UTF-8"
  12. LC_TELEPHONE="en_US.UTF-8"
  13. LC_MEASUREMENT="en_US.UTF-8"
  14. LC_IDENTIFICATION="en_US.UTF-8"
  15. LC_ALL=

2.修改/etc/locale.conf配置

  1. 原配置: LANG="en_US.UTF-8"
  2. 修改为: LANG="zh_CN.UTF-8"
  3. 输入: source /etc/locale.conf
  4. [root@centos ~]# source /etc/locale.conf

3.reboot重启后系统后,输入locale再次查看

如果没有下面No such file or directory报错信息就修改成功了,如果有报错信息则继续往下走

  1. [root@centos temp]# reboot
  2. [root@centos ~]# locale
  3. locale: Cannot set LC_CTYPE to default locale: No such file or directory
  4. locale: Cannot set LC_MESSAGES to default locale: No such file or directory
  5. locale: Cannot set LC_ALL to default locale: No such file or directory
  6. LANG=zh_CN.UTF-8
  7. LC_CTYPE="zh_CN.UTF-8"
  8. LC_NUMERIC="zh_CN.UTF-8"
  9. LC_TIME="zh_CN.UTF-8"
  10. LC_COLLATE="zh_CN.UTF-8"
  11. LC_MONETARY="zh_CN.UTF-8"
  12. LC_MESSAGES="zh_CN.UTF-8"
  13. LC_PAPER="zh_CN.UTF-8"
  14. LC_NAME="zh_CN.UTF-8"
  15. LC_ADDRESS="zh_CN.UTF-8"
  16. LC_TELEPHONE="zh_CN.UTF-8"
  17. LC_MEASUREMENT="zh_CN.UTF-8"
  18. LC_IDENTIFICATION="zh_CN.UTF-8"
  19. LC_ALL=

4.安装语言包

1.langpacks-zh_CN-1.0-12.el8.noarch.rpm

2.glibc-langpack-zh-2.28-164.el8.x86_64.rpm

3.glibc-locale-source-2.28-164.el8.x86_64.rpm

安装指令:rpm -ivh *.rpm —force —nodeps (nodeps的意思是忽视依赖关系。因为各个软件之间会有多多少少的联系。有了这两个设置选项就忽略了这些依赖关系,强制安装或者卸载 )

  1. [root@centos temp]# rpm -ivh glibc-langpack-zh-2.28-164.el8.x86_64.rpm --force --nodeps
  2. warning: glibc-langpack-zh-2.28-164.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
  3. Verifying... ################################# [100%]
  4. Preparing... ################################# [100%]
  5. Updating / installing...
  6. 1:glibc-langpack-zh-2.28-164.el8 ################################# [100%]
  7. [root@centos temp]# rpm -ivh glibc-locale-source-2.28-164.el8.x86_64.rpm --force --nodeps
  8. warning: glibc-locale-source-2.28-164.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
  9. Verifying... ################################# [100%]
  10. Preparing... ################################# [100%]
  11. Updating / installing...
  12. 1:glibc-locale-source-2.28-164.el8 ################################# [100%]
  13. [root@centos temp]# rpm -ivh langpacks-zh_CN-1.0-12.el8.noarch.rpm --force --nodeps
  14. warning: langpacks-zh_CN-1.0-12.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
  15. Verifying... ################################# [100%]
  16. Preparing... ################################# [100%]
  17. Updating / installing...
  18. 1:langpacks-zh_CN-1.0-12.el8 ################################# [100%]

5.reboot重启后系统后,输入locale再次查看

  1. [root@centos temp]# reboot
  2. [root@centos ~]# locale
  3. LANG=zh_CN.UTF-8
  4. LC_CTYPE="zh_CN.UTF-8"
  5. LC_NUMERIC="zh_CN.UTF-8"
  6. LC_TIME="zh_CN.UTF-8"
  7. LC_COLLATE="zh_CN.UTF-8"
  8. LC_MONETARY="zh_CN.UTF-8"
  9. LC_MESSAGES="zh_CN.UTF-8"
  10. LC_PAPER="zh_CN.UTF-8"
  11. LC_NAME="zh_CN.UTF-8"
  12. LC_ADDRESS="zh_CN.UTF-8"
  13. LC_TELEPHONE="zh_CN.UTF-8"
  14. LC_MEASUREMENT="zh_CN.UTF-8"
  15. LC_IDENTIFICATION="zh_CN.UTF-8"
  16. LC_ALL=

6.输入date查看是否为中文格式日期

  1. [root@centos ~]# date
  2. 2023 03 24 星期五 18:21:01 CST

7.重新启动pgsql成功!

  1. [root@centos temp]# systemctl restart postgresql-12.service
  2. [root@centos temp]#
  3. [root@centos temp]#
  4. [root@centos temp]#
  5. [root@centos temp]# systemctl status postgresql-12.service
  6. postgresql-12.service - PostgreSQL 12 database server
  7. Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; enabled; vendor preset: disabled)
  8. Active: active (running) since Fri 2023-03-24 17:07:28 CST; 1min 26s ago
  9. Docs: https://www.postgresql.org/docs/12/static/
  10. Process: 5070 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${
  11. PGDATA} (code=exited, status=0/SUCCESS)
  12. Main PID: 5077 (postmaster)
  13. Tasks: 8 (limit: 78642)
  14. Memory: 467.2M
  15. CGroup: /system.slice/postgresql-12.service
  16. ├─5077 /usr/pgsql-12/bin/postmaster -D /extdisk/database/postgresql/data
  17. ├─5090 postgres: logger
  18. ├─5092 postgres: checkpointer
  19. ├─5093 postgres: background writer
  20. ├─5094 postgres: walwriter
  21. ├─5095 postgres: autovacuum launcher
  22. ├─5096 postgres: stats collector
  23. └─5097 postgres: logical replication launcher
  24. 3 24 17:07:26 systemd[1]: Starting PostgreSQL 12 database server...
  25. 3 24 17:07:27 postmaster[5077]: 2023-03-24 17:07:27.473 CST [5077] 日志: 正在启动 PostgreSQL 12.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.>
  26. 2023-03-24 17:07:27.474 CST [5077] 日志: 正在监听IPv4地址"0.0.0.0",端口 5432
  27. 2023-03-24 17:07:27.474 CST [5077] 日志: 正在监听IPv6地址"::",端口 5432
  28. 2023-03-24 17:07:27.474 CST [5077] 日志: Unix套接字 "/var/run/postgresql/.s.PGSQL.5432"上侦听
  29. 2023-03-24 17:07:27.474 CST [5077] 日志: Unix套接字 "/tmp/.s.PGSQL.5432"上侦听
  30. 2023-03-24 17:07:28.422 CST [5077] 日志: 日志输出重定向到日志收集进程
  31. 2023-03-24 17:07:28.422 CST [5077] 提示: 后续的日志输出将出现在目录 "log"中.

发表评论

表情:
评论列表 (有 0 条评论,134人围观)

还没有评论,来说两句吧...

相关阅读