clickhouse启动报错原因

使用以下命令启动clickhouse

systemctl start clickhouse-server

启动报错信息

[root@hantest mysql]# systemctl status clickhouse-server
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2021-06-30 10:03:22 CST; 2s ago
Process: 5711 ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml –pid-file=/run/clickhouse-server/clickhouse-server.pid (code=exited, status=232/ADDRESS_FAMILIES)
Main PID: 5711 (code=exited, status=232/ADDRESS_FAMILIES)

Jun 30 10:03:22 hantest.com systemd[1]: clickhouse-server.service: main process exited, code=exited, status=232/ADDRESS_FAMILIES
Jun 30 10:03:22 hantest.com systemd[1]: Unit clickhouse-server.service entered failed state.
Jun 30 10:03:22 hantest.com systemd[1]: clickhouse-server.service failed.

解决方案

1、先查看系统启动服务的日志
  • 使用命令:

journalctl -xe

  • 系统日志如下:

Jun 30 10:03:21 hantest.com polkitd[751]: Unregistered Authentication Agent for unix-process:5673:185017 (system bus name :1.164, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en
Jun 30 10:03:22 hantest.com clickhouse-server[5711]: Processing configuration file ‘/etc/clickhouse-server/config.xml’.
Jun 30 10:03:22 hantest.com clickhouse-server[5711]: Logging trace to /var/log/clickhouse-server/clickhouse-server.log
Jun 30 10:03:22 hantest.com clickhouse-server[5711]: Poco::Exception. Code: 1000, e.code() = 13, e.displayText() = Access to file denied: /var/log/clickhouse-server/clickhouse-server.log, Stack trace

翻译:访问文件被拒绝:/var/log/clickhouse-server/clickhouse-server.log

猜想:访问文件的权限不足

2、查看clickhouse的服务日志log
  • 使用命令

cat /var/log/clickhouse-server/clickhouse-server.log

  • clickhouse的服务详细日志如下

[root@hantest mysql]# cat /var/log/clickhouse-server/clickhouse-server.log
2021.06.30 09:28:20.685110 [ 2596 ] {} SentryWriter: Sending crash reports is disabled
2021.06.30 09:28:20.928173 [ 2596 ] {} Pipe: Pipe capacity is 1.00 MiB
2021.06.30 09:28:21.153625 [ 2596 ] {} : Starting ClickHouse 21.6.4.26 with revision 54451, build id: 12B138DBA4B3F1480CE8AA18884EA895F9EAD439, PID 2596
2021.06.30 09:28:21.153735 [ 2596 ] {} Application: starting up
2021.06.30 09:28:21.153751 [ 2596 ] {} Application: OS Name = Linux, OS Version = 3.10.0-1160.el7.x86_64, OS Architecture = x86_64
2021.06.30 09:28:25.684603 [ 2596 ] {} Application: Calculated checksum of the binary: 26864E69BE34BA2FCCE2BD900CF631D4, integrity check passed.
2021.06.30 09:28:25.684733 [ 2596 ] {} Application: Will do mlock to prevent executable memory from being paged out. It may take a few seconds.
2021.06.30 09:28:25.690613 [ 2596 ] {} Application: The memory map of clickhouse executable has been mlock’ed, total 186.64 MiB
2021.06.30 09:28:25.755594 [ 2596 ] {} Application: DB::Exception: Effective user of the process (root) does not match the owner of the data (clickhouse). Run under ‘sudo -u clickhouse’.
2021.06.30 09:28:25.782973 [ 2596 ] {} Application: shutting down
2021.06.30 09:28:25.782986 [ 2596 ] {} Application: Uninitializing subsystem: Logging Subsystem
2021.06.30 09:28:25.783825 [ 2597 ] {} BaseDaemon: Received signal -2
2021.06.30 09:28:25.783848 [ 2597 ] {} BaseDaemon: Stop SignalListener thread

翻译:Application: DB::Exception:进程的有效用户(root)与数据的所有者(clickhouse)不匹配。运行’sudo -u clickhouse

猜想:目前的用户是root,但是数据的所属者是clickhouse的,所以不匹配

​ 所以要使用clickhouse用户启动clickhouse-server服务

  • 使用以下命令启动

[root@hantest mysql]# sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml

  • 信息如下

Processing configuration file ‘/etc/clickhouse-server/config.xml’.
Logging trace to /var/log/clickhouse-server/clickhouse-server.log
Poco::Exception. Code: 1000, e.code() = 13, e.displayText() = Access to file denied: /var/log/clickhouse-server/clickhouse-server.log, Stack trace (when copying this message, always include the lines below):

发现是log文件的权限错误

  • 查看文件权限

[root@hantest mysql]# ll /var/log/clickhouse-server/clickhouse-server.log
-rwxrwxrwx. 1 root root 1566 Jun 30 09:28 /var/log/clickhouse-server/clickhouse-server.log

  • 查看服务的用户权限

vim /usr/lib/systemd/system/clickhouse-server.service

[Unit]
Description=ClickHouse Server (analytic DBMS for big data)
Requires=network-online.target
After=network-online.target

[Service]
Type=simple
User=clickhouse
Group=clickhouse

  • 修改用户文件的权限

[root@hantest mysql]# chown clickhouse:clickhouse /var/log/clickhouse-server/clickhouse-server.log

[root@hantest mysql]# chown clickhouse:clickhouse /var/log/clickhouse-server/clickhouse-server.err.log

[root@hantest mysql]# ll /var/log/clickhouse-server/clickhouse-server.log
-rwxrwxrwx. 1 clickhouse clickhouse 1566 Jun 30 09:28 /var/log/clickhouse-server/clickhouse-server.log

  • 重新启动

systemctl start clickhouse-server

systemctl status clickhouse-server

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐