RabbitMQ啟動出現的問題與解決辦法


  問題1

  使用命令啟動

  service rabbitmq-server start

  報錯如下:

  Starting rabbitmq-server (via systemctl): Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.

  [FAILED]

  解決辦法:

  嘗試下面的操作:

  禁用 SELinux ,修改 /etc/selinux/config

  SELINUX=disabled

  修改后重啟系統

  問題2:

  一般使用命令

  rabbitmq-server start

  可以查看啟動相關日志的

  BOOT FAILED

  ===========

  Error description:

  {could_not_start,rabbit,

  {{badmatch,

  {error,

  {{{badmatch,

  {error,

  {not_a_dets_file,

  "/var/lib/rabbitmq/mnesia/rabbit@n1/recovery.dets"}}},

  [{rabbit_recovery_terms,open_table,0,

  [{file,"src/rabbit_recovery_terms.erl"},{line,126}]},

  {rabbit_recovery_terms,init,1,

  [{file,"src/rabbit_recovery_terms.erl"},{line,107}]},

  {gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},

  {proc_lib,init_p_do_apply,3,

  [{file,"proc_lib.erl"},{line,247}]}]},

  {child,undefined,rabbit_recovery_terms,

  {rabbit_recovery_terms,start_link,[]},

  transient,30000,worker,

  [rabbit_recovery_terms]}}}},

  [{rabbit_queue_index,start,1,

  [{file,"src/rabbit_queue_index.erl"},{line,491}]},

  {rabbit_variable_queue,start,1,

  [{file,"src/rabbit_variable_queue.erl"},{line,466}]},

  {rabbit_priority_queue,start,1,

  [{file,"src/rabbit_priority_queue.erl"},{line,92}]},

  {rabbit_amqqueue,recover,0,

  [{file,"src/rabbit_amqqueue.erl"},{line,240}]},

  {rabbit,recover,0,[{file,"src/rabbit.erl"},{line,800}]},

  {rabbit_boot_steps,'-run_step/2-lc$^1/1-1-',1,

  [{file,"src/rabbit_boot_steps.erl"},{line,49}]},

  {rabbit_boot_steps,run_step,2,

  [{file,"src/rabbit_boot_steps.erl"},{line,49}]},

  {rabbit_boot_steps,'-run_boot_steps/1-lc$^0/1-0-',1,

  [{file,"src/rabbit_boot_steps.erl"},{line,26}]}]}}

  Log files (may contain more information):

  /var/log/rabbitmq/rabbit@n1.log

  /var/log/rabbitmq/rabbit@n1-sasl.log

  {"init terminating in do_boot",{could_not_start,rabbit,{{badmatch,{error,{{{badmatch,{error,{not_a_dets_file,"/var/lib/rabbitmq/mnesia/rabbit@n1/recovery.dets"}}},[{rabbit_recovery_terms,open_table,0,[{file,"src/rabbit_recovery_terms.erl"},{line,126}]},{rabbit_recovery_terms,init,1,[{file,"src/rabbit_recovery_terms.erl"},{line,107}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]},{child,undefined,rabbit_recovery_terms,{rabbit_recovery_terms,start_link,[]},transient,30000,worker,[rabbit_recovery_terms]}}}},[{rabbit_queue_index,start,1,[{file,"src/rabbit_queue_index.erl"},{line,491}]},{rabbit_variable_queue,start,1,[{file,"src/rabbit_variable_queue.erl"},{line,466}]},{rabbit_priority_queue,start,1,[{file,"src/rabbit_priority_queue.erl"},{line,92}]},{rabbit_amqqueue,recover,0,[{file,"src/rabbit_amqqueue.erl"},{line,240}]},{rabbit,recover,0,[{file,"src/rabbit.erl"},{line,800}]},{rabbit_boot_steps,'-run_step/2-lc$^1/1-1-',1,[{file,"src/rabbit_boot_steps.erl"},{line,49}]},{rabbit_boot_steps,run_step,2,[{file,"src/rabbit_boot_steps.erl"},{line,49}]},{rabbit_boot_steps,'-run_boot_steps/1-lc$^0/1-0-',1,[{file,"src/rabbit_boot_steps.erl"},{line,26}]}]}}}

  init terminating in do_boot ()

  Crash dump is being written to: erl_crash.dump...done

  解決辦法:

  find / -name recovery.dets

  然后使用 rm 命令刪除掉 recoer.dets 文件

  問題4 :

  使用命令

  rabbitmq-server start

  報錯如下: 提示 no space left on device

  /usr/lib/rabbitmq/bin/rabbitmq-server: line 51: echo: write error: No space left on device

  Failed to write pid file: /var/lib/rabbitmq/mnesia/rabbit@n3.pid

  解決辦法:

  查看磁盤占用情況

  df -h

  然后使用

  cd / #回到根目錄

  du -sh * # 查看各個文件夾占用磁盤情況

  然后看哪個盤數據多, 就cd 進入哪個盤,然后進行最終找到數據量大的文件。一般是日志文件的話,刪除即可。

  啟動異常

  rabbitmq-server start

  報錯如下:

  BOOT FAILED

  ===========

  Error description:

  {error,{inconsistent_cluster,"Node rabbit@node1 thinks it's clustered with node rabbit@node2, but rabbit@node2 disagrees"}}

  Log files (may contain more information):

  /usr/local/rabbitmq_server-3.6.2/var/log/rabbitmq/rabbit@node1.log

  /usr/local/rabbitmq_server-3.6.2/var/log/rabbitmq/rabbit@node1-sasl.log

  Stack trace:

  [{rabbit_mnesia,check_cluster_consistency,0,

  [{file,"src/rabbit_mnesia.erl"},{line,593}]},

  {rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,279}]},

  {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,407}]},

  {init,start_it,1,[]},

  {init,start_em,1,[]}]

  {"init terminating in do_boot",{error,{inconsistent_cluster,"Node rabbit@node1 thinks it's clustered with node rabbit@node2, but rabbit@node2 disagrees"}}}

  Crash dump was written to: erl_crash.dump

  init terminating in do_boot ()

  如何解決無錫人流醫院哪家好 http://www.ytsg029.com/

  問題分析,從node1的啟動報錯來看,像是集群信息殘留。在node2上操作將node1移除集群,node1的rabbitmq服務已經down掉了,所以數據庫無法同步更新,記載的仍是舊的集群信息(數據庫記錄里自身節點仍屬於集群),而node2和node3的數據庫記錄已經更新(數據庫信息里面集群不包含node1節點了)。

  那么就得將這個節點mnesia 數據刪掉

  找到mnseia 目錄

  mv mnesia/ /tmp/

  如果刪了,發現 啟動還是報錯,很有可能你 刪錯了 mnesia

  find / -name mnesia

  查找下,然后再次刪除,然后重啟

  問題,節點加入集群后出現黃框

  解決辦法:

  rabbitmq-plugins enable rabbitmq_management

  增加用戶 並且賦予角色

  rabbitmqctl add_user root root

  rabbitmqctl set_user_tags root administrator

  問題:

  如果節點啟動

  rabbitmq-server start

  報錯如下:

  BOOT FAILED

  ===========

  Timeout contacting cluster nodes: [rabbit@node2].

  BACKGROUND

  ==========

  This cluster node was shut down while other nodes were still running.

  To avoid losing data, you should start the other nodes first, then

  start this one. To force this node to start, first invoke

  "rabbitmqctl force_boot". If you do so, any changes made on other

  cluster nodes after this one was shut down may be lost.

  DIAGNOSTICS

  ===========

  attempted to contact: [rabbit@node2]

  rabbit@node2:

  * connected to epmd (port 4369) on node2

  * node rabbit@node2 up, 'rabbit' application running

  current node details:

  - node name: rabbit@node1

  - home dir: /root

  - cookie hash: jIUJ2lMKMbDhJLdCJgFDAA==

  {"init terminating in do_boot",timeout_waiting_for_tables}

  解決辦法:

  rabbitmqctl force_boot

  問題:

  rabbitmq-server: unrecognized service

  解決辦法

  hostname

  查看hostname是否正確

  如果使用

  vi /etc/hosts

  修改了host但是不生效, 那么查看

  /etc/sysconfig/network

  這個目錄下的hostname 是否寫死了, 把它修改了,然后重啟 reboot

  https://img-blog.csdn.net/20180322135423539

  nohup啟動

  nohup ./rabbitmq-server start &


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM