MySQL gagal memulai ulang pada Ubuntu 16.04

14

Saya mencoba me-restart MySQL setelah menyimpan skrip. Status kesalahan

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

Saat menjalankan systemctl status mysql.serviceinilah yang saya dapatkan:

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

Saya tidak yakin harus mulai dari mana.

Ini adalah skrip yang saya simpan sebelum memulai ulang mysql:

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

Berlari journalctl -xe | tail -20memberi saya ini:

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)

Berlari ulimit && ulimit -Samemberi saya:

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
Edd
sumber
1
Bisakah Anda menambahkan output journalctl -xe | tail -50ke pertanyaan Anda?
LD James
@LDJames seluruh output? Cukup besar. Atau hanya beberapa bit terakhir?
Edd
Output akan menjadi 50 baris. Sebenarnya 15 atau 20 baris sudah cukup. Anda dapat mengubah -50ke -15. Saya hanya ingin memastikan untuk memasukkan garis di mana masalah sebenarnya terjadi.
LD James
@LDJames saya mengerti, jadi untuk itulah perintah tail. Saya telah menambahkan journalctl -xe | tail -20output.
Edd
2
Bagaimana dengan pesan "ERROR: Anda telah mengaktifkan log biner ..."? Apakah Anda berniat melakukan itu? MySQL mengharapkan id server di sana, yang hanya saya ketahui dari pengaturan master-slave.
Jos

Jawaban:

8

Kesalahan fatal:

MYQL gagal memulai karena seperti yang ditunjukkan oleh Journalctl, but you haven't provided the mandatory server-id. Tambahkan id wajib seperti yang ditunjukkan dalam kode di bawah ini.

/etc/mysql/mysql.conf.d/mysqld.cnf
Ubah dari:

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

Mengubah:

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

Ini akan membuat server Anda berjalan saat Anda mengatasi pemformatan yang tepat dari logging yang Anda inginkan.

peringatan tidak fatal:

Untuk batas file terbuka kesalahan Anda, Anda harus mengurangi permintaan dalam konfigurasi yang Anda edit atau menambah batas sistem dengan:

/etc/security/limits.conf

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

Kolom pertama menjelaskan kepada WHO batasan yang harus dilamar. ' ' adalah wildcard, artinya semua pengguna. Untuk menaikkan batas root, Anda harus secara eksplisit memasukkan 'root' daripada ' '.

Diambil dari:
/ubuntu//a/162230/29012

LD James
sumber
Bekerja! Apakah karena secara eksplisit menyatakan itu adalah perangkat master? Saya mencoba memasukkan server-id = 1sebelum ini tetapi tidak berhasil.
Edd
di mana file hal-hal ini harus diubah?
Vijay Sharma
Untuk mysqledit konfigurasi /etc/mysql/mysql.conf.d/mysqld.cnf. Untuk sistem open files limitlihat: /etc/security/limits.conf . Saya akan memperbarui jawaban saya dengan informasi ini nanti. Bisakah Anda memberi tahu saya jika masalah Anda teratasi? Dengan cara ini saya dapat memasukkan informasi terkait lainnya dalam jawabannya.
LD James
2

Mendapat kesalahan yang sama, tetapi dalam kasus saya hanya disk penuh. Pastikan juga untuk memeriksa ini.

df -h --total
Xinxin
sumber
+1 Ini untuk saya. Kosongkan sebagian ruang dan mulai layanan.
Saif
0

Atasi masalah dengan:

  1. Menambahkan Swapfile
  2. Menambahkan innodb_buffer_pool_size = 20Mke file konfigurasi /etc/mysql/my.cnfuntuk memastikan file itu ada dalam grup
Emma
sumber
0

Masalah saya adalah IP host diubah.

Jadi edit bind-addressdi /etc/mysql/my.cnfke yang benar.

yangsibai
sumber