Saya seorang pemula di tanah MySQL jadi bersabarlah.
Saya baru saja selesai memutakhirkan 11,10 ke 12,04.
Segalanya tampak bekerja tanpa cegukan dan semua peranti lunak dan pengaturan saya berfungsi dengan baik. Terlepas dari MySQL.
Ketika saya mencoba:
sudo start mysql
Saya menerima kesalahan:
start: Job failed to start
Di mana saya bisa mendiagnosis apa masalahnya? Dan (mudah-mudahan) - bagaimana cara mengatasinya?
(Saya menonaktifkan otomatis mulai mengikuti saran di sini jika itu penting)
Pembaruan 1:
Kedua output dari:
cat /var/log/mysql.err
cat /var/log/mysql.log
kosong
Output dari dmesg | grep mysql
:
[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory
Pembaruan 2:
Seperti ditunjukkan oleh AWinter di bawah ini - sepertinya MySQL menghilang secara otomatis setelah peningkatan dan harus diinstal ulang.
sudo rm /etc/mysql/ -R
- itu sama sekali tidak ada dalam kasus saya. Pokoknya - untungnya itu hanya instalasi lokal untuk menguji Wordpress .. Bertanya-tanya apa yang akan terjadi pada server nyata o_Oapt-get update
sebelumnya, karena itu menghapus dovecot dan php5-mysql. Saya hanya dapat menginstal ulang ini setelah pembaruan. Setelah saya selesai, semuanya kembali berfungsi dengan baik.-bash: cd: /var/lib/mysql/: Permission denied
dan menggunakansudo -i
bahkan tidak bekerja.sumber
Saya memiliki masalah yang sama dan bagi saya itu adalah file log InnoDB adalah ukuran yang berbeda dari yang diharapkan mysql, dan gagal diam-diam selama upgrade.
Saya punya file konfigurasi khusus yang dihapus pada upgrade ke 12,04 yang mengatur ukuran file log untuk sesuatu selain dari apa konfigurasi default.
Anda harus menghapus file: / var / lib / mysql / ib_logfile *
Setelah file hilang, mysql sekarang dapat memulai dan membuat file log baru dengan ukuran default.
sumber
Sebagian besar kesalahan akan muncul dengan memulai server dalam mode non-daemon verbose dan menonton hasilnya:
sumber
Saya memiliki masalah yang sama, tetapi tidak ada jawaban di atas yang membantu saya. Jadi sebagai harapan terakhir saya mencoba untuk membebaskan beberapa ruang disk. Saya cukup menghapus file log yang tidak perlu dari / var / log yang membebaskan beberapa ruang 2.5G. Kemudian MySQL mulai normal.
sumber
Ini kadang-kadang terjadi dan meskipun ada beberapa masalah berbeda yang bisa membuat mysql tidak mulai, saya akan menulis di sini beberapa yang paling umum yang saya ketahui:
CATATAN - Karena menjelaskan masalah yang paling umum, saya berasumsi bahwa Anda telah mencoba menghapus dan menginstal, atau hanya menginstal ulang layanan mysql seperti:
Untuk Menginstal -
sudo apt-get install mysql-server mysql-client
Untuk Menghapus -
sudo apt-get remove mysql-server mysql-client
Untuk Membersihkan (Menghapus file + Konfigurasi) -
sudo apt-get purge mysql-server mysql-client
Untuk Menginstal Ulang -
sudo apt-get install --reinstall mysql-server mysql-client
my.cnf
file tidak ada dalam direktori default. Seharusnya (Secara default) berada di salah satu/etc/my.cnf
atau/etc/mysql/my.cnf
.Tidak cukup ruang di hard drive tempat file data mysql berada. Jika Databas menjadi terlalu besar dan mengambil 100% dari hard drive, layanan akan gagal.
Setelah pemutakhiran periksa apakah
my.cnf
file berada di tempat yang benar. Bergantung pada bagaimana Anda meningkatkan atau dari versi apa Anda meningkatkan, itu bisa dalam/etc/my.cnf
atau/etc/mysql/my.cnf
seperti yang disebutkan sebelumnya. Juga ingat bahwa file tersebut juga dapat dinamaimysql.conf
dan bukan hanyamy.cnf
. Ini terjadi dalam kasus di mana Anda telah mengunduh biner dari mysql.com .Melakukan
dmesg
untuk melihat apa layanan mysql melempar sebagai pesan kesalahan membantu karena memberikan kesalahan memuat. Bisa juga dikatakan mengapa ini terjadi. Jika Anda mengetikdmesg
sendirian di terminal itu akan menunjukkan kepada Anda dunia. Yang kami inginkan adalah info tentang mysql jadi lakukan sesuatu seperti ini:dmesg | grep mysql
ini akan memberi Anda setiap baris yang mengandung mysql di dalamnya.Periksa
my.cnf
ataumysql.conf
file yang benar. Dalam 12,04 MySQL adalah versi 5.5, di 11.10 itu adalah versi 5.1. Mungkin ada beberapa perubahan pada file conf (Belum benar-benar memeriksanya) dan mungkin terdengar konyol tapi itu pasti dapat memberi Anda beberapa masalah.Kesalahan yang terkait dengan masalah soket biasanya adalah kesalahan
my.cnf
ataumysql.conf
file menunjuk ke tempat yang salah, kesalahan mereka biasanya akan ditampilkan sebagai:Sumber lain dari masalah ini terkait dengan
mysql
file/etc/init.d
yang menunjuk pada folder yang salah karena mungkin menggunakan skrip yang lebih lama dari yang diperlukan untuk mysql aktual pada sistem (Mungkin tidak diperbarui dengan benar, tidak menimpa file konfigurasi, dll.). Jadi cukup edit salah satu dari dua file ini dan lihat apakah mereka menunjuk ke tempat lain dan kemudian lakukan asudo service mysql restart
untuk memeriksa apakah itu berfungsi.Untuk melihat lebih baik pada output spesifik kesalahan mysql lakukan hal berikut:
cat /var/log/mysql.err
- Akan menampilkan kesalahan mysql. Saya akan membuatnya seperti inicat /var/log/mysql.err | less
jika Anda kebetulan melihat terlalu banyak informasi terbang karenaless
akan membantu Anda menggulir jalan Anda melalui outputcat
.Sama berlaku untuk
cat /var/log/mysql.log
Jika Anda melihat kesalahan di sana mungkin memasukkannya ke dalam pertanyaan atau sebagai komentar akan membantu menjawab ini lebih cepat.Jika Anda menderita masalah koneksi dan layanan yang sebenarnya sedang berjalan, cobalah untuk melihat apakah Firewall server memperbolehkan koneksi melalui port 3306 (Koneksi masuk). Setelah itu periksa apakah router (Jika berlaku) belum memblokir port 3306. Pada dasarnya lakukan tes jaringan untuk melihat dari mana masalah yang terkait dengan port yang ditugaskan ke mysql berasal.
Jika semuanya baik, untuk menguji apakah layanan mysql sedang berjalan ketik
service mysql status
Sebagai pilihan terakhir. Jika Anda menjalankan mysql tetapi Anda tidak bisa masuk, coba yang berikut ini:
Hentikan Server MySQL:
sudo /etc/init.d/mysql stop
atausudo service mysql stop
Mulai
mysqld
layanan secara manual dengan konfigurasi manualsudo mysqld --skip-grant-tables &
(Ingatlah untuk menambahkan & lain Anda harus membuka terminal lain. & & Mengirim proses ke latar belakang dan Anda dapat membunuh menggunakan terminal yang sama).
Login ke database mysql sebagai ROOT
mysql -u root mysql
Ketik yang berikut menggantikan MyPASSWORD dengan kata sandi baru Anda
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
Ini harus cukup untuk login ke layanan Mysql Anda sebagai root lagi. Semoga ini bisa membantu.
sumber
/etc/mysql/my.cnf
dalam kasus saya. Apakah itu lokasi yang benar?dmesg
memberi saya pleeenty output yang di luar pemahaman saya: / Saya memang telah menginstal 5.1 - apakah itu memiliki konsekuensi?Saya memiliki masalah yang sama setelah memutakhirkan ke Ubuntu Server 12.04 LTS, berjalan
sudah cukup untuk memperbaikinya, meskipun mengeluhkan tentang database lama dari situs web. Saya memperbaikinya dengan menghapus spotweb:
dan mengkonfigurasi ulang mysql:
sumber
Saya akan menambahkan ini jika seseorang menghadapi masalah serupa. Saya mencoba semua uninstall dan menginstal ulang tetapi tidak berhasil. Kunci untuk menemukan solusi adalah bahwa pemula menempatkan log kesalahan dalam folder ini
/ var / log / pemula /
untuk mysql
/var/log/upstart/mysql.log
ketika saya membuka itu ada pesan ini
Ketika saya melihat di folder /etc/apparmor.d/tunables/ saya tidak memiliki file home di dalamnya sehingga saya membuat satu
gedit /etc/apparmor.d/tunables/home dan menyalin konten dari komputer lain yang memiliki baris yang tidak dikomentari ini
seseorang menghadapi masalah serupa di sini
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303
kemudian setelah itu saya bisa me-restart layanan
sumber
Dalam kasus saya, ini jauh lebih mudah daripada beberapa jawaban di sini. Saya menemukan bug terkait di launchpad dan perbaikannya seperti yang disebutkan di komentar 9:
sumber
Setelah upgrade saya menemukan bahwa mysql-server / mysql-server-5.5 tidak diinstal dan juga 5.1. Saya mengganti nama my.cnf ke my.cnf_old dan saya mencoba menginstal mysql-serven. Selama instalasi ada pesan kesalahan bahwa kata sandi root tidak dapat diatur. Setelah ini, saya memeriksa konfigurasi, apparmor, dan sebagainya. Semua tampak baik-baik saja. Upaya saya berikutnya adalah mengkonfigurasi ulang mysql-server tetapi mengeluh bahwa paket tersebut tidak diinstal sepenuhnya. Jadi saya memutuskan untuk menghapus dan selama ini paket apt-get diperbaiki dan sekarang berfungsi. Saya tidak tahu mengapa karena saya tidak mengubah apa pun.
sumber
Saya memiliki masalah yang sama, tetapi dengan cepat dilacak ke aparatur, yang saya ingat telah memberi saya masalah ini sebelumnya.
Jika Anda melakukan perubahan pada pengaturan ini dan sistem Anda menggunakan apparmor, Anda mungkin juga perlu menyesuaikan /etc/apparmor.d/usr.sbin.mysqld. Misalnya. baris-baris ini ditambahkan (untuk memungkinkan symlink ke my.cnf, dan untuk memungkinkan file symlink untuk dibaca, mungkin):
/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}
sumber
Dalam kasus saya, saya mencoba menginstal MySQL pada instalasi baru Ubuntu 12.04, tetapi saya tidak mengerti mengapa itu memberi saya kesalahan dalam pengaturan kata sandi untuk pengguna 'root'. Saya mencoba semua solusi di atas, tetapi tidak ada hubungannya.
Kemudian saya memutuskan untuk membersihkan / menghapus semuanya, saya uninstall server MySQL dan menghapus semua foldernya (/ etc / mysql / dan / var / lib / mysql /), akhirnya berkat semacam keacakan itu tidak memberikan kesalahan selama instal ulang dan saya dapat mengatur kata sandi dan memulai contoh server.
sumber
Di terminal Anda dapat menginstalnya lagi, dan membuatnya dijalankan my.cnf Anda dapat mengetik:
mungkin bekerja seperti ini.
sumber
Saya mengalami masalah bahwa menambahkan di
performance_schema
bawah menyebabkan kegagalan ini. Menghapus baris itu dan mysql dapat memulai lagi.[mysqld]
/etc/mysql/my.conf
Sunting: Ternyata Satu pertunjukan ram tidak cukup untuk memulai mysqld dengan performance_schema diaktifkan. Saya bertemu 3 pertunjukan dan itu bekerja dengan baik.
sumber