MySQL tidak akan memulai!

12

Saya mendapatkan kesalahan ini ketika mencoba masuk ke MySQL dari baris perintah:

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

Saya pikir ini berarti MySQL belum dimulai. Jadi saya mencoba memulainya:

sudo /etc/init.d/mysql start

dan saya mendapatkan pesan ini:

* Starting MySQL database server mysqld [fail] 

Di mana saya melihat / apa yang harus saya lakukan untuk memulai MySQL? Saya menjalankan Ubuntu 8.04 dan menginstal MySQL melalui apt-get. Saya sudah bisa memulainya dan menggunakannya beberapa kali jadi saya tidak tahu mengapa itu berhenti bekerja.

Pembaruan: Ketika menjalankan sudo /etc/init.d/mysql status saya menerima pesan:

* MySQL is stopped.

Pembaruan # 2: File log saya (/var/log/mysql.log & /var/log/mysql.err) kosong (jika ini yang benar)

Andrew
sumber
apa yang terjadi ketika Anda sudo /etc/init.d/mysql status
emgee

Jawaban:

10

Pada Ubuntu 12.04 saya mengalami masalah yang sama setelah mengubah ukuran buffer dalam file /etc/mysql/my.cnf, saya pikir saya agak terbawa. Lagi pula setelah mencoba mengubahnya kembali ke pengaturan default MySQL masih tidak akan memulai.

Saya mencoba beberapa metode berbeda untuk menyelesaikannya, saya memang memperhatikan bahwa /var/run/mysql/mysql.sock hilang. Ini bisa menjadi masalah sehingga Anda dapat memeriksa di sana dan jika ada yang hilang Anda dapat menggantinya dengan melakukan hal berikut:

sudo touch /var/run/mysql/mysql.sock
sudo chown mysql /var/run/mysql/mysql.sock

Ini TIDAK memperbaiki masalah bagi saya! Tetapi mungkin bagi sebagian orang.

Apa yang harus saya lakukan adalah menginstal ulang sepenuhnya MySQL, untuk melakukan ini Anda harus menggunakan perintah sudo. Langkah-langkah untuk sepenuhnya menghapus dan menginstal ulang MySQL adalah sebagai berikut:

Hapus MySQL

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common

Secara opsional, Anda dapat menggunakan aptitude, dengan mengganti apt-get --purge dengan aptitude

Membersihkan

sudo apt-get autoremove
sudo apt-get autoclean

Hapus dir MySQL

sudo rm -rf /etc/mysql

Instal MySQL

sudo apt-get install mysql-server mysql-client

MySQL sekarang seharusnya sudah berjalan, Anda dapat memeriksa ini dengan melakukan hal berikut:

sudo service mysql status

Anda harus melihat

mysql start/running, process xxxxx

Semoga ini bisa membantu, dan saya pikir saya bisa menambahkan setelah melakukan ini semua database dan tabel saya di mana masih tersedia, namun saya harus membuat ulang pengguna dan kata sandi untuk database tersebut.

Catatan: Jika Anda memiliki ekstensi mysql untuk php, Anda harus menginstal ulang ini juga.

sudo apt-get install php5-mysql
Kyle Coots
sumber
Ini bekerja untuk saya, tetapi saya harus mengubahnya ke: sudo touch /var/run/mysqld/mysqld.sockdan saya menemukan ini dari akhir /var/log/syslog (misalnya perubahan ke mysqld)
Programster
Apakah itu /var/run/mysqldatau /var/run/mysql?
CMCDragonkai
menyentuh file sock adalah ide yang buruk-Anda telah membuat file biasa, ketika itu benar-benar soket, yang merupakan jenis file khusus.
Criggie
3

PERINGATAN: Ini berbahaya, mysql Anda TIDAK akan aman dan siapa pun akan dapat terhubung, mengedit, dll tabel Anda, jangan biarkan server Anda berjalan dengan perintah ini.

Coba mulai dalam mode aman: /usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables

Jika ini berhasil maka mungkin ada masalah dengan information_schema Anda atau tabel mysql Anda. Jika tidak berfungsi maka ada yang salah dengan pemasangan Anda.

lilott8
sumber
1
Ini bagus, ini memberi Anda kesalahan rinci di syslog. Perintah telah berubah, pada Ubuntu 12,04 adalahsudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
newz2000
3

Periksa file log Anda seperti pada jawaban lainnya. Juga, periksa apakah Anda memiliki cukup (atau ruang disk apa pun). MySQL dapat berperilaku seperti ini di partisi kosong.

df -h

Jika bukan itu, periksa dokumen MySQL tentang debugging server . Mereka myisamchk(jika Anda menggunakan MyISAM) sangat berguna.

Aidan Fitzpatrick
sumber
3

Saya juga baru saja mendapat masalah ini setelah memperbarui ubuntu. Belum yakin apa sebenarnya masalahnya. Satu worakround yang berfungsi saat ini untuk menjalankan mysql adalah melakukan:

sudo aa-complain /etc/apparmor.d/*mysql*

Itu membuatnya bekerja, menunjukkan bahwa aparatur menghentikan mysql dari menjalankan, dan menjelaskan mengapa log kosong mungkin juga: mysql tidak diizinkan untuk berjalan.

Ini tetap merupakan masalah aneh, karena sejauh ini tidak ada "keluhan" dari sini /var/log/apparmor, dan satu-satunya entri audit di kern.log adalah dari mengubah profil menjadi mode keluhan.

Perhatikan bahwa dalam melakukan ini saya juga menambahkan /etc/apparmor.d/local/usr.sbin.mysqlfile (kosong) sebagai perintah aa-complain mengeluh tentang tidak menemukan file ini.

pengguna143757
sumber
Terima kasih banyak! Setelah hampir merobek rambut saya, itu akhirnya memperbaikinya.
Olathe
3

Saya memiliki masalah yang sama dengan tetesan Digital Ocean 512MB saya.

Ternyata itu disebabkan memori yang tidak mencukupi.

Solusi segera adalah me-restart layanan lain untuk membebaskan memori misalnya

sudo service apache2 restart

Maka semoga, dengan memori yang cukup, Anda harus dapat me-restart mysql

sudo service mysql restart

Solusi jangka panjangnya adalah dengan mendapatkan lebih banyak RAM, atau membuat memori swap .

samwize
sumber
2

Lihatlah file-file log Anda. Setidaknya di Debian, Anda mendapatkan log mysql * /var/log.

innaM
sumber
3
mysql.err dan mysql.log keduanya kosong
Andrew
1

Punya masalah yang sama ini, ternyata solusinya sedang menatap wajah saya. Drive itu penuh. Anda tidak mendapatkan log karena tidak ada tempat untuk menulisnya .....

pembuat perahu
sumber
0

Masalah yang sama mengganggu saya selama berabad-abad di Ubuntu 12,04 Digital Ocean VPS dengan mysql 5.6 diinstal dari PPA. Gejala-gejalanya adalah bahwa file mysql.sock di /var/run/mysqld/mysql.sockakan dihapus tetapi tidak pernah diciptakan kembali, jadi saya harus menjalankan perintah berikut secara manual setiap kali mysql diperbarui atau server reboot:

sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock

Ini dari jawaban Kyle C (kecuali dengan mysqld bukan mysql). Pada akhirnya saya diturunkan ke mysql 5.5 yang muncul ketika Anda biasanya melakukan sudo apt-get install mysql-serverperintah. Namun itu tidak lurus ke depan jadi inilah yang harus saya lakukan:

# Manually get mysql running if it is not
sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock
sudo service mysql start

# take a dump of all databases 
# we are going to remove the mysql files so don't skip this)
mysqldump -u root -p > all-databases.sql

# Completely remove mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

# Remove mysql 5.6 from debs (otherwise it will reinstall 5.6)
rm /etc/apt/sources.list.d/ondrej-(mysql something please check)

# remove a flag that would prevent the installation
# because it is seen as a downgrade
sudo rm /var/lib/mysql/debian-5.6.flag

# I had to remove the mysql files as well
# reference http://ubuntuforums.org/showthread.php?t=1998260&page=3
rm -rf /var/lib/mysql
rm -rf /etc/mysql*

# Install mysql
sudo apt-get install mysql-server mysql-client mysql-common php5-mysql

# manually update the all-databases.sql file and 
# remove all STATS_PERSISTENT clauses on table creation statments

# re import the databses
mysql -u root -p < all-databases.sql

# restart apache
sudo service apache2 restart

# at this point my wordpress site stated error connecting to database.
# This was resolved by logging into mysql and running:
FLUSH PRIVILEGES

Semoga ini akan membantu orang lain mengalami sakit yang sama.

Programster
sumber
0

angka ini mungkin membantu orang lain ... jadi ini dia.

Saya ingin memigrasi mysql 5.5 (default ubuntu) ke 5.7 yang baru
(ingin bermain diseluruh dengan tipe JSON asli yang baru)

Saya mengikuti instruksi untuk menginstal versi terbaru ....
tetapi MySQL tidak mau memulai.

Menghabiskan waktu mencari dan menemukan baris ini di /var/log/mysql/errors.log:

unknown variable 'key_buffer=16M'

dan itu adalah sesuatu yang diatur dalam hal /etc/mysql/my.cnfitu, selama peningkatan, saya memilih untuk tetap.

Jadi, cukup mudah setelah itu:
mengganti versi saya my.cnfdengan yang my.cnf.dpkg-distterletak di direktori yang sama ...

Maka harus lari

sudo mysql_upgrade -u root -p sudo service mysql restart

dan sekarang MySQL kembali aktif

lakukan
sumber
0

Menemukan variasi lain tentang apa yang bisa salah. Saya memindahkan direktori data, dan ternyata saya lupa chown direktori untuk pengguna mysql, yang juga gagal tanpa output apa pun. Jelas salah di belakang, tetapi kurangnya pesan kesalahan membuat setiap masalah sepele sulit ditemukan.

Kdansky
sumber