mariadb가 계속 죽어가는 이유는 무엇입니까? 어떻게 중지합니까? : 종료 완료; 로그 시퀀스

Ubuntu 15.10에서 MariaDB 10.0.23-0을 LAMP 서버로 실행하고 있습니다. 실행 sudo /etc/init.d/mysql start결과 :

Job for mariadb.service failed because a timeout was exceeded. See "systemctl status mariadb.service" and "journalctl -xe" for details.

출력 systemctl status mariadb.service은 다음과 같습니다.

● mariadb.service-MariaDB 데이터베이스 서버
   로드 됨 :로드 됨 (/lib/systemd/system/mariadb.service; 사용; 공급 업체 사전 설정 : 사용)
  드롭 인 : /etc/systemd/system/mariadb.service.d
           └─migration-from-my.cnf-settings.conf
   활성 : 실패 (결과 : 시간 초과) Sat 2016-03-26 22:52:42 EDT 이후; 26 초 전
  프로세스 : 8707 ExecStart = / usr / sbin / mysqld $ MYSQLD_OPTS $ _WSREP_NEW_CLUSTER (코드 = 종료, 상태 = 0 / SUCCESS)
  프로세스 : 8706 ExecStartPre = / usr / bin / install -m 755 -o mysql -g root -d / var / run / mysqld (code = exited, status = 0 / SUCCESS)
 메인 PID : 8707 (코드 = 종료, 상태 = 0 / 성공)

3 월 26 일 22:52:39 boggan systemd [1] : mariadb.service : 시작 작업 시간이 초과되었습니다. 종료.
3 월 26 일 22:52:39 boggan mysqld [8707] : 2016-03-26 22:52:39 140105856617216 [참고] / usr / sbin / mysqld : 정상 종료
3 월 26 일 22:52:39 boggan mysqld [8707] : 2016-03-26 22:52:39 140105856617216 [참고] 이벤트 스케줄러 : 대기열을 제거합니다. 이벤트 0 개
3 월 26 일 22:52:39 boggan mysqld [8707] : 2016-03-26 22:52:39 140104920164096 [참고] InnoDB : FTS는 스레드 종료를 최적화합니다.
3 월 26 일 22:52:39 boggan mysqld [8707] : 2016-03-26 22:52:39 140105856617216 [참고] InnoDB : 종료 시작 중 ...
3 월 26 일 22:52:42 boggan mysqld [8707] : 2016-03-26 22:52:42 140105856617216 [참고] InnoDB : 종료 완료; 로그 시퀀스 번호 3336953
3 월 26 일 22:52:42 boggan mysqld [8707] : 2016-03-26 22:52:42 140105856617216 [참고] / usr / sbin / mysqld : 종료 완료
3 월 26 일 22:52:42 boggan systemd [1] : MariaDB 데이터베이스 서버를 시작하지 못했습니다.
3 월 26 일 22:52:42 boggan systemd [1] : mariadb.service : 장치가 실패 상태에 들어갔습니다.
3 월 26 일 22:52:42 boggan systemd [1] : mariadb.service : 'timeout'결과로 실패했습니다`

첫 번째 systemd줄에는 일종의 “웰 듀”가 있습니다. 시간이 초과 된 것을 알고 있습니다. 두 번째 systemd는 이후 mysqld이 있기 때문에 선, 비트 신비화입니다 않는 사실 시작에. 데이터베이스에 의존하는 응용 프로그램 (특히 CloudCloud)은 정상적으로 작동합니다. MariaDB가 작동하는 순간에 변경됩니다.

또 다른 질문time /etc/init.d/mysql start시간이 얼마나 걸리는지를 결정하기 위해 사용 하는 것이 좋습니다 . 시간을 확인하기 위해 반복적으로 실행했습니다. 매번 90 초 양쪽에 몇 초입니다.

다른 연구는 … 게다가, 그것은 좋은입니다 파일 권한을 확인하기 위해 저를 이끌어 않는 일시적으로 시작합니다. 나는 (리눅스에 관해서는 제한되어 있음) 최선의 능력을 찌르고 자극했으며, 아무런 진전도 없었습니다.

질문은 … MariaDB 서비스를 어떻게 유지합니까?

여분의 주름으로,이 질문을 쓴 후에, 나는 기계를 가동시켜 두었습니다. 나는 일주일 후에 다시 돌아 왔습니다 (나는 그것을 만지지 않았습니다). 똑같은 명령을 사용하여 sudo /etc/init.d/mysql start성공했습니다. mysql 데몬이 시작되어 실행되었습니다. [ ok ]보고서 와 함께 돌아 왔습니다 . 실험을 위해 다시 부팅 한 후 다시 시작했습니다.

중요한 경우 출력 journalctl -xe은 다음과 같습니다.

4 월 02 일 23:51:44 boggan systemd [1] : 중지됨 필요한 파일을 미리 읽습니다.
-주제 : 유닛 우레아 헤드 서비스 종료
-정의 기준 : systemd
-지원 : http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-
-장치 ureadahead.service의 종료가 완료되었습니다.
4 월 02 일 23:51:55 boggan mysqld [2645] : 2016-04-02 23:51:55 140386161068800 [참고] InnoDB : 온라인 DDL : 시작
4 월 02 일 23:51:55 boggan mysqld [2645] : 2016-04-02 23:51:55 140386161068800 [참고] InnoDB : 온라인 DDL : 테이블의 클러스터 된 인덱스 읽기 시작 및 임시 파일 만들기
4 월 02 일 23:51:55 boggan mysqld [2645] : 2016-04-02 23:51:55 140386161068800 [참고] InnoDB : 온라인 DDL : 테이블의 클러스터 된 인덱스 읽기 종료 및 임시 파일 생성
4 월 02 일 23:51:55 boggan mysqld [2645] : 2016-04-02 23:51:55 140386161068800 [참고] InnoDB : 온라인 DDL : 완료
4 월 02 일 23:51:55 boggan mysqld [2645] : 2016-04-02 23:51:55 140386161068800 [참고] InnoDB : 온라인 DDL : 완료
4 월 02 일 23:52:06 boggan dbus [713] : [system] 'org.bluez'서비스 활성화 실패 : 시간 초과
4 월 02 일 23:52:37 boggan systemd [1] : mariadb.service : 시작 작업 시간이 초과되었습니다. 종료.
4 월 02 일 23:52:37 boggan mysqld [2645] : 2016-04-02 23:52:37 140386097400576 [참고] / usr / sbin / mysqld : 정상 종료
4 월 02 일 23:52:37 boggan 커널 : 감사 : type = 1400 audit (1459655557.935 : 31) : apparmor = "DENIED"operation = "sendmsg"profile = "/ usr / sbin / mysqld"name = "/ run / systemd / notify "pid = 2645 comm ="mysqld "requested_mask ="w "denied_mask ="w "fsuid = 122 ouid = 0
4 월 02 일 23:52:37 boggan audit [2645] : AVC apparmor = "DENIED"operation = "sendmsg"profile = "/ usr / sbin / mysqld"name = "/ run / systemd / notify"pid = 2645 comm = " mysqld "requested_mask ="w "denied_mask ="w "fsuid = 122 ouid = 0
4 월 02 일 23:52:37 boggan mysqld [2645] : 2016-04-02 23:52:37 140386097400576 [참고] 이벤트 스케줄러 : 대기열을 제거합니다. 이벤트 0 개
4 월 02 일 23:52:37 boggan mysqld [2645] : 2016-04-02 23:52:37 140385225500416 [참고] InnoDB : FTS는 스레드 종료를 최적화합니다.
4 월 02 일 23:52:37 boggan mysqld [2645] : 2016-04-02 23:52:37 140386097400576 [참고] InnoDB : 시스템 종료 중 ...
4 월 02 일 23:52:39 boggan mysqld [2645] : 2016-04-02 23:52:39 140386097400576 [참고] InnoDB : 종료 완료; 로그 시퀀스 번호 3360838
4 월 02 일 23:52:39 boggan mysqld [2645] : 2016-04-02 23:52:39 140386097400576 [참고] / usr / sbin / mysqld : 종료 완료
4 월 02 일 23:52:39 boggan 커널 : 감사 : type = 1400 audit (1459655559.419 : 32) : apparmor = "DENIED"operation = "sendmsg"profile = "/ usr / sbin / mysqld"name = "/ run / systemd / notify "pid = 2877 comm ="mysqld "requested_mask ="w "denied_mask ="w "fsuid = 122 ouid = 0
4 월 02 일 23:52:39 boggan audit [2877] : AVC apparmor = "DENIED"operation = "sendmsg"profile = "/ usr / sbin / mysqld"name = "/ run / systemd / notify"pid = 2877 comm = " mysqld "requested_mask ="w "denied_mask ="w "fsuid = 122 ouid = 0
4 월 02 일 23:52:39 boggan audit [2645] : AVC apparmor = "DENIED"operation = "sendmsg"profile = "/ usr / sbin / mysqld"name = "/ run / systemd / notify"pid = 2645 comm = " mysqld "requested_mask ="w "denied_mask ="w "fsuid = 122 ouid = 0
4 월 02 일 23:52:39 boggan 커널 : 감사 : type = 1400 audit (1459655559.419 : 33) : apparmor = "DENIED"operation = "sendmsg"profile = "/ usr / sbin / mysqld"name = "/ run / systemd / notify "pid = 2645 comm ="mysqld "requested_mask ="w "denied_mask ="w "fsuid = 122 ouid = 0
4 월 02 일 23:52:39 boggan systemd [1] : MariaDB 데이터베이스 서버를 시작하지 못했습니다.
-주제 : unit mariadb.service failed
-정의 기준 : systemd
-지원 : http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-
-유닛 mariadb.service가 실패했습니다.
-
-결과가 실패합니다.
4 월 02 일 23:52:39 boggan systemd [1] : mariadb.service : 장치가 실패 상태가되었습니다.
4 월 02 일 23:52:39 boggan systemd [1] : mariadb.service : 'timeout'결과로 실패했습니다.


답변

mysql에서 mariadb로 업그레이드 한 후에도 똑같은 문제가있었습니다. 이상한 점은 서비스 mysql 시작이 성공한 동안 서비스 mariadb 시작이 시간 초과 (시스템 부팅 또는 수동)에서 실패한다는 것입니다.

TJL 의 설명 은 옳지 만 수정은 효과가 없었습니다.

$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.

ERROR: /etc/apparmor.d/usr.sbin.mysqld contains no profile

그래서 프로필을 비활성화했습니다 ( plutocrat 의 솔루션 과 동등한 것으로 보이는 aa-disable )

$ sudo aa-disable /usr/sbin/mysqld
Disabling /usr/sbin/mysqld.

mysqld-akonadi 및 mysqld-digikam도 비활성화했습니다.

의류 재 장전이 충분하지 않아서 재부팅해야 했고 mariadb가 완벽하게 시작되었습니다.


답변

복장은 범인이었습니다. /etc/apparmor.d/usr.sbin.mysqld아무 말도하지 않고 내용이 있다고 주장 함에도 불구하고 Apparmor가 MariaDB에 질식하지 않을 것이라는 주장이 있었지만, 그것은 정확히 일어난 일입니다.

Oracle 블로그의 AppArmor 및 MySQL 은 진행 상황을 파악하는 데 필요한 것을 제공했습니다.

sudo aa-status의류가 무엇을하고 있는지 보여줍니다. 실제로 시행되는 정책과 방금 설정 한 사항.

sudo apt-get install apparmor-utils 의류 프로필을보다 쉽게 ​​처리 할 수있는 몇 가지 명령을 추가합니다.

sudo aa-complain /usr/sbin/mysqld불만을 제기하기 위해 “강제”에서 프로필을 전환합니다. ( aa-enforce다시 돌립니다.)

완료되면 sudo service apparmor reload의류가 다시 시작되고 voila …가 sudo /etc/init.d/mysql start작동하고 서버가 계속 작동합니다.


답변

의류에서 mysql을 완전히 비활성화해야했습니다. aa 불평은 나를 위해 아무것도하지 않을 것입니다. 그래서 …

ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/

그런 다음 재부팅


답변

간단한 해결책은 알 수없는 AppArmor 프로파일을 제거하는 것입니다.

aa-remove-unknown
Removing '/snap/core/6350/usr/lib/snapd/snap-confine'
Removing '/usr/sbin/mysqld'

작동합니다!