우분투 16.04에서 MySQL을 다시 시작하지 못했습니다.


14

스크립트를 저장 한 후 MySQL을 다시 시작하려고합니다. 오류 상태

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

systemctl status mysql.service여기를 실행하면 내가 얻는 것이 있습니다.

Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (start-post) (Result: exit-code) since Isn 2016-09-26 17:15:28 MYT; 17s ago
  Process: 17478 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 17474 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 17478 (code=exited, status=1/FAILURE);         : 17479 (mysql-systemd-s)
   CGroup: /system.slice/mysql.service
           └─control
             ├─17479 /bin/bash /usr/share/mysql/mysql-systemd-start post
             └─17516 sleep 1

이 부분을 어디에서 고칠 지 잘 모르겠습니다.

이것은 mysql을 다시 시작하기 전에 저장 한 스크립트입니다.

[mysqld]
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'

달리는 journalctl -xe | tail -20것은 나에게 이것을 준다 :

Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.037709Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.037798Z 0 [Warning] Changed limits: max_connections: 214 (requested 350)
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.037809Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 2000)
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.187886Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.189296Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.15-0ubuntu0.16.04.1-log) starting as process 21937 ...
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191216Z 0 [ERROR] You have enabled the binary log, but you haven't provided the mandatory server-id. Please refer to the proper server start-up parameters documentation
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191242Z 0 [ERROR] Aborting
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191255Z 0 [Note] Binlog end
Sep 26 17:46:29 guest mysqld[21937]: 2016-09-26T09:46:29.191300Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
Sep 26 17:46:29 guest systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Sep 26 17:46:32 guest NetworkManager[878]: <info>  [1474883192.2910] device (eth0): Lowering IPv6 MTU (9000) to match device MTU (1500)

달리는 ulimit && ulimit -Sa것은 나에게 준다 :

unlimited
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128071
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 128071
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

1
journalctl -xe | tail -50질문에 대한 결과를 추가 할 수 있습니까 ?
LD James

@LDJames 전체 출력? 꽤 큽니다. 아니면 마지막 몇 비트입니까?
Edd

출력은 50 줄입니다. 실제로 15 ~ 20 줄이면 충분합니다. 당신은 변경할 수 있습니다 -50에를 -15. 실제로 문제가 발생하는 줄을 포함하고 싶었습니다.
LD James

@LDJames 내가 본 것은 tail 명령의 목적입니다. journalctl -xe | tail -20출력을 추가했습니다 .
Edd

2
"오류 : 바이너리 로그를 활성화했습니다 ..."메시지는 어떻습니까? 그렇게 하시겠습니까? MySQL은 서버 ID를 기대하며 마스터 슬레이브 설정에서만 알 수 있습니다.
Jos

답변:


8

치명적 오류:

Journalctl 출력에 표시된 but you haven't provided the mandatory server-id. 대로 아래 코드에 표시된대로 필수 ID를 추가하므로 MYQL을 시작하지 못했습니다 .

/etc/mysql/mysql.conf.d/mysqld.cnf
다음에서 변경 :

log-bin=mysql-bin
binlog-format = 'ROW'

로 변경:

server-id=master-01
log-bin=mysql-bin
binlog-format = 'ROW'

원하는 로깅의 올바른 형식을 지정하는 동안 서버가 실행됩니다.

치명적이지 않은 경고 :

열린 파일 제한 오류의 경우 편집 한 구성의 요구를 줄이거 나 다음을 사용하여 시스템 제한을 늘려야합니다.

/etc/security/limits.conf

* soft nofile [new number]
* hard nofile [new number]

첫 번째 열은 한도가 적용되는 WHO에 대해 설명합니다. ' '는 모든 사용자를 의미하는 와일드 카드입니다. 루트에 대한 한계를 높이려면 ''대신 'root'를 명시 적으로 입력해야합니다 .

/ubuntu//a/162230/29012 에서
가져옴


일했다! 마스터 장치라고 명시 적으로 명시 되었습니까? 나는 server-id = 1이것을 전에 시도했지만 작동하지 않았다.
Edd

이 파일들은 어떤 파일에서 변경되어야합니까?
비제이 샤르마

위해 mysql구성 편집 /etc/mysql/mysql.conf.d/mysqld.cnf. 시스템의를 들면 open files limit: 봐 /etc/security/limits.conf . 나중에이 정보로 답변을 업데이트하겠습니다. 문제가 해결되었는지 알려주시겠습니까? 이 방법으로 답변에 다른 관련 정보를 포함시킬 수 있습니다.
LD James

2

같은 오류가 발생했지만 제 경우에는 단순히 디스크가 가득 찼습니다. 이것도 확인하십시오.

df -h --total

+1 이것은 나를위한 것이었다. 공간을 확보하고 서비스를 시작하십시오.
Saif

0

다음을 수행하여 문제를 해결하십시오.

  1. 스왑 파일 추가
  2. innodb_buffer_pool_size = 20M구성 파일에 추가 하여 /etc/mysql/my.cnf그룹에 있는지 확인

0

내 문제는 호스트의 IP가 변경되었다는 것입니다.

편집 그래서 bind-address에서 /etc/mysql/my.cnf올바른합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.