mulai server mysql gagal

28

Saya menjalankan server ubuntu. Ketika saya mencoba masuk ke mysql (yang sedang berjalan), saya mendapatkan kesalahan berikut

ERROR 2002 (HY000): Can't connect to local MySQL server through socket         '/var/run/mysqld/mysqld.sock' (2)

Tetapi file mysqld.sock tidak ada di dalam /var/run/mysqldfolder. Saat menjalankan ps aux | grep mysqlperintah, saya menyadari bahwa server mysql tidak berjalan.

Saya kemudian mencoba me-restart server mysql menggunakan

service mysql start
service mysql restart
/etc/init.d/mysql start

Namun, proses awal gagal dalam semua 3 kasus. /var/log/mysql/mysql.logdan /var/log/mysql/mysql.errfile kosong.

Tetapi /var/log/error.logtunjukkan informasi berikut:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete
ananth
sumber
lihat apakah ini membantu: serverfault.com/questions/104014/…
Rinzwind
1
Apa output dari ls /var/lib/mysql/ib_logfile*?
jobin
ls: tidak dapat mengakses / var / lib / mysql / ib_logfile *: Tidak ada file atau direktori seperti itu
ananth
1
Apakah direktori / var / lib / mysql Anda dapat ditulis untuk mysql?
Yos
1
Saya seorang pemula linux..Aku mengubah izin / var / lib / mysql dengan menggunakan chmod 777 . Bisakah Anda menyarankan saya cara memeriksa apakah ini bukan cara yang benar?
ananth

Jawaban:

28

Buka terminal ( Ctrl+ Alt+ t) dan lakukan hal berikut:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

dan komentar pada baris record_buffer=64Mdi /etc/mysql/my.cnf [1]

dan kemudian restart msyql menggunakan:

sudo service mysql restart

(Sumber)

pekerjaan
sumber
1
Saya menjalankan perintah yang Anda sebutkan .. Pada menjalankan layanan sudo restart mysql, ia memberi pesan berhenti: Contoh tidak dikenal dan shell prompt tidak muncul (restart masih berjalan dari 50 menit terakhir)
ananth
1
Juga, sekarang log kesalahan mengatakan: -140425 15:09:11 InnoDB: format file yang didukung tertinggi adalah Barracuda. 140425 15:09:12 InnoDB: Menunggu utas latar belakang dimulai 140425 15:09:13 InnoDB: 5.5.37 dimulai; log nomor urut 940942258188 140425 15:09:13 [GALAT] / usr / sbin / mysqld: variabel tidak diketahui 'record_buffer = 64M' 140425 15:09:13 [KESALAHAN] Aborting 140425 15:09:13 InnoDB: Memulai shutdown ... 140425 15:09:14 InnoDB: Shutdown selesai; log nomor urut 940942258188 140425 15:09:14 [Catatan] / usr / sbin / mysqld: Shutdown complete
ananth
Tidak. Saya melakukan sudo service mysql restart.
ananth
Bisakah Anda mencoba melakukannya sudo service mysql start?
jobin
Haruskah saya mematikan proses restart mysql yang sedang berjalan? Apakah akan menimbulkan masalah ??
ananth
9

Ini menyelesaikan masalah saya:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart

pengguna520064
sumber
1
setelah menerapkan langkah-langkah ini, basis data saya dihapus. Sekarang apa yang akan saya lakukan ??
Amit Yadav
7

Saya memecahkan masalah dengan cara berikut:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

Dalam konteks lain, saya menghadapinya karena daemon mysql gagal memulai. Jadi mulailah daemon dengan perintah - mysqld startdan kemudian cobalah untuk memulai layanan.

Sudheesh.MS
sumber
2

Saya memiliki pesan kesalahan yang sama dan kekosongan yang sama di file log. Dalam file config (my.cnf) saya telah menetapkan bahwa saya ingin menggunakan tabel myisam, dengan menambahkan baris ini di bagian [mysqld] -saya:

default-table-type = myisam

Setelah memutakhirkan mysql, sepertinya ini menyebabkan mysql tidak memulai. Saya telah mengubah ini menjadi:

default-storage-engine = myisam

dan sekarang semuanya berfungsi dengan baik.

Lars Olav Tveito
sumber
1

Meningkatkan RAM yang tersedia dengan menambahkan ruang Swap baru juga dapat membantu. Langkahnya ada di sini

Pastikan Anda membuat / menukar file dengan ukuran lebih kecil dari ruang yang tersedia yang ditunjukkan oleh

df -h

Misalnya bagi saya output dari df-h adalah:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

Jadi saya buat menggunakan 2 G

sudo fallocate -l 2G /swapfile

Dan kemudian mulai layanan

sudo /etc/init.d/mysql restart

Semoga ini membantu. Semua yang terbaik.

Vivek
sumber
1

Solusi saya:

Periksa apakah di semua /etc/rc1.d ... /etc/rc5.d skrip mysql dimulai dengan S (Ex S10mysql) dan bukan K AS K10mysql.

Penjelasan: K awalan memuat dengan berhenti, jenis layanan mematikan; dan awalan S dimulai dengan parameter mulai.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5
Sergio Abreu
sumber
1

Dalam kasus saya, itu adalah masalah ruang. Periksa apakah Anda memiliki cukup ruang.

dari /var/log/mysql/error.logsaya mendapat beberapa petunjuk dari dua baris:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Saya bisa melihat bahwa ini adalah masalah ruang.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

Dari sini, saya bisa melihat bahwa tidak ada ruang yang cukup di server virtual /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. Dan saya berpikir untuk melakukan migrasi atau menambah drive virtual, tetapi saya memutuskan untuk menghapus file yang tidak perlu terlebih dahulu.

Jadi, harus membersihkan cache dan file yang tidak diperlukan:

#apt-get clean
#apt-get -f autoremove

Kemudian, jangan lupa untuk menghapus file log rusak mysql sesudahnya. Mereka akan dihasilkan lagi ketika Anda me-restart mysql

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Periksa layanan server mysql Anda dan itu mungkin sudah berjalan

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Kasus ditutup. Saya harap ini membantu.

sukupandachu
sumber
0

Hapus file /var/lib/mysql/.run-mysql_upgrade dan itu harus dimulai

;)

"Dengan kekuatan besar datang tanggung jawab besar"

Adrian Pule
sumber
0

Aku punya masalah ini ketika saya mengatur max_allowed_packet = 0.5Mdi /etc/mysql/my.cnf.

Saya memecahkannya dengan mengubah max_allowed_packetke 1M.

kulit ratskin
sumber
0

Perintah berikut menyelesaikan masalah saya dan mysql dapat mulai setelah itu (mungkin berguna dalam beberapa kasus)

chown -R mysql: /var/lib/mysql
Yusef
sumber