MySQL, Ubuntu 16.04'te yeniden başlatılamadı


14

Bir komut dosyasını kaydettikten sonra MySQL'i yeniden başlatmaya çalışıyorum. Hata durumları

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

Çalışırken systemctl status mysql.serviceburada ne olsun:

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

Bunu düzeltmeye nereden başlayacağımdan emin değilim.

Bu mysql yeniden başlatmadan önce kaydettiğim komut dosyasıdır:

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

Koşmak journalctl -xe | tail -20bana şunu veriyor:

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)

Koşmak ulimit && ulimit -Sabana:

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 -50Sorunuzun çıktısını ekleyebilir misiniz ?
LD James

@ Tüm çıktıyı? Oldukça büyük. Yoksa sadece son birkaç bit mi?
Edd

Çıktı 50 satır olacaktır. Aslında 15 veya 20 satır yeterli olmalıdır. Değişebilirsin -50To -15. Sadece asıl sorunun oluştuğu satırı eklediğinden emin olmak istedim.
LD James

@LDJames Anlıyorum, bu yüzden kuyruk komutu bunun için. Bir journalctl -xe | tail -20çıktı ekledim .
Edd

2
"HATA: İkili günlük etkinleştirdiniz ..." iletisine ne olacak? Bunu yapmak istedin mi? MySQL burada sadece master-slave kurulumlarından bildiğim bir sunucu kimliği bekliyor.
Jos

Yanıtlar:


8

Ölümcül hata:

MYQL başlatılamıyor çünkü Journalctl çıktısının gösterdiği gibi, but you haven't provided the mandatory server-id. zorunlu kimliği aşağıdaki kodda gösterildiği gibi ekleyin.

/etc/mysql/mysql.conf.d/mysqld.cnf
Şununla değiştir:

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

Değişmek:

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

Bu, istediğiniz günlük kaydının doğru biçimlendirmesini ele alırken sunucunuzun çalışmasını sağlar.

ölümcül olmayan uyarılar:

Hatanızın açık dosya sınırı için, düzenlediğiniz yapılandırmadaki talebi azaltmanız veya sistemin sınırlarını şu şekilde artırmanız gerekir:

/etc/security/limits.conf

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

İlk sütun, sınırın uygulanacağı DSÖ'nü açıklar. ' ', tüm kullanıcılar anlamına gelen bir joker karakterdir. Kök sınırlarını yükseltmek için '' yerine açıkça 'root' girmelisiniz .

Alındığı yer:
/ubuntu//a/162230/29012


Yaradı! Bunun ana cihaz olduğunu açıkça belirttiği için mi? Bundan server-id = 1önce koymaya çalıştım ama işe yaramadı.
Edd

bu şeyler hangi dosyada değişmeli?
Vijay Sharma

İçin mysqlyapılandırma düzenlemek /etc/mysql/mysql.conf.d/mysqld.cnf. Sistemin İçin open files limit: bakmak /etc/security/limits.conf . Cevabımı biraz sonra bu bilgilerle güncelleyeceğim. Sorununuzun çözülüp çözülmediğini bana bildirir misiniz? Bu şekilde cevaba başka herhangi bir ilgili bilgi ekleyebilirim.
LD James

2

Aynı hatayı aldım, ama benim durumumda sadece disk doluydu. Bunu da kontrol ettiğinizden emin olun.

df -h --total

+1 Bu benim içindi. Biraz yer açın ve hizmeti başlatın.
Saif

0

Sorunu şu şekilde çözün:

  1. Swapfile Ekleme
  2. Grupta olduğundan emin innodb_buffer_pool_size = 20Molarak yapılandırma dosyasına ekleme/etc/mysql/my.cnf

0

Benim sorunum, ana bilgisayarın IP değişti.

Bu yüzden bind-addressgirişi /etc/mysql/my.cnfdoğru olana düzenleyin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.