Masalah saya mulai dengan saya tidak bisa login sebagai root lagi di mysql instal. Saya mencoba menjalankan mysql tanpa kata sandi dihidupkan ... tetapi setiap kali saya menjalankan perintah
# mysqld_safe --skip-grant-tables &
Saya tidak akan pernah mendapatkan prompt kembali. Saya mencoba mengikuti petunjuk ini untuk memulihkan kata sandi .
Layar hanya terlihat seperti ini:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
dan saya tidak mendapatkan prompt untuk mulai mengetik perintah SQL untuk mereset kata sandi.
Ketika saya membunuhnya dengan menekan CTRL+ C, saya mendapatkan pesan berikut:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Jika saya mencoba kembali perintah dan membiarkannya cukup lama, saya mendapatkan serangkaian pesan berikut:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Tetapi kemudian jika saya mencoba masuk sebagai root dengan melakukan:
# mysql -u root
Saya mendapatkan pesan kesalahan berikut:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Saya memeriksa dan /var/run/mysqld/mysqld.sock
file tidak ada. Folder tidak, tetapi bukan file.
Juga, saya tidak tahu apakah ini membantu atau tidak, tetapi saya berlari find / -name mysqld
dan muncul dengan:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Saya baru mengenal Linux dan MySQL, jadi saya tidak tahu apakah ini normal atau tidak. Tapi saya memasukkan info ini untuk berjaga-jaga jika itu membantu.
Saya akhirnya memutuskan untuk menghapus dan menginstal ulang mysql.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Setelah menginstal ulang semua paket lagi dalam urutan yang sama seperti di atas, selama instalasi phpmyadmin, saya mendapatkan kesalahan yang sama:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Jadi saya mencoba lagi untuk menghapus / menginstal ulang. Kali ini, setelah saya menghapus paket, saya juga secara manual mengganti nama semua file mysql dan direktori mysql.bad
di lokasi masing-masing.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Kemudian saya mencoba menginstal ulang mysql-server
dan mysql-client
lagi. Tetapi saya perhatikan bahwa itu tidak meminta saya untuk kata sandi. Bukankah seharusnya meminta kata sandi admin?
/var/run/mysqld/mysqld.sock
hilang. Masalah yang Anda tautkan memiliki file itu.Jawaban:
Untuk menemukan semua file socket di sistem Anda:
Sistem server Mysql saya membuka soket di
/var/lib/mysql/mysql.sock
Setelah Anda menemukan di mana soket sedang dibuka, tambahkan atau edit baris ke file /etc/my.cnf Anda dengan jalur ke file socket:
Kadang-kadang skrip startup sistem yang meluncurkan baris perintah yang dapat dieksekusi menentukan bendera
--socket=path
. Bendera ini dapat mengesampingkan lokasi my.cnf, dan itu akan menghasilkan soket yang tidak ditemukan di tempat file my.cnf menunjukkan seharusnya. Kemudian ketika Anda mencoba menjalankan klien baris perintah mysql, itu akan membaca my.cnf untuk menemukan soket, tetapi tidak akan menemukannya karena menyimpang dari tempat server membuat satu. Jadi, Kecuali Anda peduli di mana soket berada, hanya mengubah my.cnf agar cocok harus bekerja.Kemudian, hentikan proses mysqld. Cara Anda melakukan ini akan berbeda di setiap sistem.
Jika Anda pengguna super di sistem linux, coba salah satu dari yang berikut ini jika Anda tidak tahu metode spesifik yang digunakan pengaturan Mysql Anda:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
ataups aux | grep mysql | grep -v grep
4969
diakhiri dengankill -9 4969
Setelah Anda melakukan ini, Anda mungkin ingin mencari file pid
/var/run/mysqld/
dan menghapusnyaPastikan izin pada soket Anda sedemikian rupa sehingga apa pun yang dijalankan pengguna mysqld dapat membaca / menulis padanya. Tes yang mudah adalah dengan membukanya hingga baca / tulis penuh dan lihat apakah masih berfungsi:
Jika itu memperbaiki masalah, Anda dapat menyesuaikan izin dan kepemilikan soket sesuai kebutuhan berdasarkan pengaturan keamanan Anda.
Juga, direktori tempat tinggal soket harus dapat dijangkau oleh pengguna yang menjalankan proses mysqld.
sumber
kill -9
; ada beberapa cara yang harus dicoba sebelum harus sampai pada itu.ps -aux | grep mysqld
dan lihat apakah ada proses mysql lain yang sedang berjalanCoba perintah ini,
sumber
sudo service mysqld start
sudo apt-get install mysql-server
jika Anda belum menginstalnya :)Kesalahan ini terjadi karena beberapa instalasi mysql. Jalankan perintah:
Matikan proses dengan menggunakan:
dan kemudian jalankan perintah:
Bunuh juga proses ini dengan menjalankan:
Sekarang Anda sudah sepenuhnya siap jalankan saja perintah berikut:
Apakah mysql bekerja dengan sangat baik lagi
sumber
Solusinya jauh lebih mudah.
mysql.sock
file Anda berada. Dalam kasus saya itu masuk/opt/lampp/var/mysql/mysql.sock
sudo Nautilus
Ini memulai Manajer file Anda dengan hak pengguna super
mysql.sock
file Anda beradamysqld.sock
kemudian klik kanan pada file dan Cut itu/var/run
dan buat folder bernamamysqld
dan masukkanmysqld.sock
file di/var/run/mysqld/mysqld.sock
:)sumber
sudo find / -type s
tidak mengandung apa punmysql.sock
?Hanya Perlu Memulai Layanan MySQL setelah instalasi:
Untuk Ubuntu:
Untuk CentOS atau RHEL:
sumber
sudo systemctl status mysql.service
dansudo systemctl start mysql.service
. Ini bekerja untuk sayaAda bug di Ubuntu dengan MySQL 5.6 dan 5.7 di mana
var/run/mysqld/
akan hilang setiap kali layanan MySQL berhenti atau reboot. Ini mencegah MySQL untuk tidak berjalan sama sekali. Menemukan solusi ini, yang tidak sempurna, tapi setidaknya itu bisa berjalan setelah berhenti / reboot:sumber
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
dan kemudian,d /var/run/mysqld 0755 mysql mysql -
Setelah reboot, mysql akan mulai secara normal. Ini dari bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , komentar 3. Jika Anda memiliki masalah dengan MySQL 5.7, silakan berkomentar di Launchpad. Semakin banyak pengguna yang mengatasi masalah, semakin banyak perhatian yang didapat./etc/tmpfiles.d/mysql.conf
per komentar motorbaby memperbaiki masalah ini untuk saya. Pada OS Centos 7 dan menggunakanmysql Ver 15.1 Distrib 10.3.11-MariaDB,
.Oke cukup salin dan tempel kode ini: Ini harus dilakukan di terminal, di dalam server, ketika database mysql Anda tidak diinstal dengan benar, dan ketika Anda mendapatkan kesalahan ini: 'Tidak dapat terhubung ke server MySQL lokal melalui soket' / var / run / mysqld / mysqld.sock '(2)'.
Hentikan MySql
Mulai ulang atau mulai
Buat tautan seperti ini dan berikan ke sistem
Jalankan instalasi aman yang memandu semua proses yang perlu Anda lakukan untuk mengkonfigurasi mysql
sumber
Can't connect
kesalahan yang sama ketika saya mencoba menjalankan perintah di atas.Saya menghadapi kesalahan yang sama dan menemukan bahwa itu disebabkan oleh peningkatan paket, jadi setelah memulai ulang sistem saya, saya menyelesaikan kesalahan.
Saya pikir karena sql pustaka / paket memperbarui kesalahan yang terjadi, Jadi coba ini jika Anda melakukan peningkatan :)
sumber
Ada banyak alasan untuk masalah ini, tetapi terkadang hanya me-restart server mysql, itu akan memperbaiki masalah.
sumber
Menggunakan XAMPP di ubuntu:
Buat folder bernama mysqld di dalam direktori / var / run . Anda dapat melakukannya dengan menggunakan perintah
sudo mkdir /var/run/mysqld
.Buat tautan simbolis ke file mysql.sock yang dibuat oleh server XAMPP saat dijalankan. Anda bisa menggunakan perintah
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.Semoga berhasil! Saya harap Anda akan lolos kali ini.
sumber
Jawaban langkah pemuatan pengguna berhasil untuk saya. Terkadang perlu mengedit file di
/etc/mysql/my.cnf
tambahkan baris ke kliensumber
mysql: unknown variable 'Host=127.0.0.1'
Host
harus huruf kecilhost
dan itu akan berfungsi. Juga, solusi ini berhasil untuk saya.* Kesalahan: 'Tidak dapat terhubung ke server MySQL lokal melalui socket' /var/run/mysqld/mysqld.sock '(2)'
solusi
akhirnya hapus dan instal ulang mysql. **
kemudian instal kembali oleh
Setelah operasi ini, 164 MB ruang disk tambahan akan digunakan.
...... .......
Akhirnya Anda akan mendapatkan baris-baris ini ....
Menyiapkan libhtml-templat-perl (2.95-1) ...
Menyiapkan mysql-common-5.6 (5.6.16-1 ~ exp1) ... Memproses pemicu untuk libc-bin (2.19-0ubuntu6) Memproses pemicu untuk ureadahead (0.100.0-16) ...
Lalu
root @ ubuntu1404: ~ # mysql -u root -p (untuk setiap kata sandi pertama yang harus Anda gunakan)
Masukkan kata kunci:
Catatan: Kata sandi yang dimasukkan harus sama dengan kata sandi waktu instalasi mysql (seperti .root, sistem, admin, rahul dll ...)
Kemudian ketik
USE rahul_db (nama database);
Terima kasih.**
sumber
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Terima kasih!E: Package 'mysql-server-5.6' has no installation candidate
, itu tidak ada di Ubuntu 18.04Pastikan path file socket yang tidak dapat diakses Anda sama dengan '/var/run/mysqld/mysqld.sock', jika tidak ubah path seperti milik Anda. Hentikan mysqld
Jika proses masih berjalan;
Hapus direktori mysql di mana socket akan membuat. Bagi saya itu tidak diizinkan untuk dihapus, jadi saya harus menghapusnya dengan paksa.
Setel kepemilikan ke direktory
Mulai mysql
Mencoba menghubungkan mysql
sumber
Saya pikir server MySQL Anda belum dimulai. Jadi, mulailah server menggunakan salah satu dari perintah berikut.
atau
sumber
Solusi sementara
Mungkin seseorang menghadapi masalah ini. Saya menggunakan Mysql Workbench di Ubuntu 14 dan mendapatkan kesalahan ini.
Temukan file socket Anda dengan menjalankan
sudo find / -type s
, dalam kasus saya itu/run/mysqld/mysqld.sock
Jadi, saya baru saja membuat tautan ke file ini di
tmp
direktori.sumber
/tmp
folder sehingga pasti akan dihapus. Anda dapat mengubah.sock
lokasi file. Lihat @ user3002884 jawaban.Anda dapat menemukan
mysqld.sock
di/var/run/mysqld
jika Anda telah menginstalmysql-server
olehsudo apt-get install mysql-server
sumber
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
di
/etc/my.cnf
tambahkan baris ini:Dan mulai ulang layanan dengan:
service mysql restart
ini berhasil untuk saya
sumber
Ini telah disebutkan beberapa kali, tetapi ini segera bekerja untuk saya:
service mysql restart
sumber
Dalam kasus saya, dua proses mysqld sedang berjalan .. mematikan proses opsional dengan menggunakan pkill -9 mysqld
sumber
Jika Anda memiliki banyak database dan tabel di sistem Anda, dan jika Anda telah
innodb_file_per_table
menetapkan di my.cnf, maka server mysql Anda mungkin kehabisan objek / file yang dibuka (atau lebih tepatnya deskriptor untuk objek-objek ini) Menetapkan jumlah maks baru dengandan mulai kembali mysql. Pendekatan ini mungkin membantu ketika soket tidak dibuat sama sekali, tetapi sebenarnya ini mungkin bukan masalah sebenarnya, ada masalah mendasar.
sumber
Saya baru saja mengalami masalah ini di Ubuntu 14.10
Ternyata
mysql-server
itu tidak lagi diinstal (entah bagaimana itu telah dihapus) tapi saya tidak bisa menginstalnya karena ada beberapa paket yang rusak dan masalah / konflik ketergantungan.Pada akhirnya saya harus menginstal ulang mysql
sumber
Saya menghapus instalan mysql di Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql
Saya menginstal ulang mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
Ini sepertinya berhasil.
sumber
Solusi saya;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
Saya mengubah port. Ini berhasil untuk saya. Anda dapat menulis port lain. Contoh 3355
sumber
Mengapa mendapatkan kesalahan ini?
Saya menerima pembaruan baru dari perpustakaan mysql sehingga saya memperbarui Kubuntu OS saya setelah itu mendapatkan kesalahan ini.
Perintah yang saya coba dan bagaimana saya memperbaikinya.
MySql-server berjalan dengan benar tetapi ketika saya mencoba untuk menghubungkan pemberiannya
Saya memeriksa
/var/run/mysqld/mysqld.sock'.
direktori ini. File saya tidak ada.Saya juga mencoba perintah ini untuk menghubungkan tetapi tidak berhasil untuk saya.
Setelah menghabiskan sekitar 2 jam saya menemukan solusinya
Setelah itu semuanya beres untuk saya.
sumber
Mengubah
host
untuk127.0.0.1
bekerja untuk saya.Edit file
/etc/mysql/my.cnf
dan tambahkan baris yang disebutkan di bawah ini ke bagian:client
Setelah kamu selesai dengan itu. Jalankan perintah berikut.
sumber
Saya juga akan memeriksa konfigurasi mysql. Saya mengalami masalah ini dengan server saya sendiri tetapi saya agak terlalu terburu-buru dan salah mengonfigurasi innodb_buffer_pool_size untuk mesin saya.
innodb_buffer_pool_size = 4096M
Biasanya berjalan dengan baik hingga 2048 tapi saya kira saya tidak memiliki memori yang diperlukan untuk mendukung 4 gigs.
Saya membayangkan ini juga bisa terjadi dengan pengaturan konfigurasi mysql lainnya.
sumber
Saya memiliki masalah serupa pada VPS CentOS. Jika MySQL tidak akan mulai atau terus macet setelah dimulai, coba langkah-langkah ini:
1) Temukan file my.cnf (milik saya ada di /etc/my.cnf) dan tambahkan baris:
innodb_force_recovery = X
mengganti X dengan angka dari 1 hingga 6, mulai dari 1 dan kemudian bertambah jika MySQL tidak akan memulai. Pengaturan ke 4, 5 atau 6 dapat menghapus data Anda jadi hati-hati dan baca http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html sebelumnya.
2) Mulai ulang layanan MySQL. Hanya SELECT yang akan berjalan dan itu normal pada saat ini.
3) Buang semua database / skema Anda dengan mysqldump satu per satu, jangan kompres dump karena Anda harus mengompresnya nanti.
4) Pindahkan (atau hapus!) Hanya direktori bd di dalam / var / lib / mysql, menjaga masing-masing file di root.
5) Hentikan MySQL dan kemudian batalkan komentar pada baris yang ditambahkan dalam 1). Mulai MySQL.
6) Memulihkan semua bd yang dibuang di 3).
Semoga berhasil!
sumber
Coba yang berikut ini di terminal prompt:
Setelah itu memungkinkan Anda masuk, Anda dapat membuat pengguna baru dan memberikan hak istimewa yang Anda inginkan pada basis data khusus yang mereka butuhkan.
Mysql 5.7 mengubah beberapa hal dan secara default menggunakan plugin auth_socket (sebagai ganti mysql_native_password) untuk root untuk melindungi akun agar tidak diretas. Anda dapat menimpanya dengan mengatur bidang plugin untuk root, tetapi kecuali Anda memiliki alasan yang sangat baik Anda mungkin tidak boleh menghindari perlindungan. Apalagi saat
sudo mysql
itu lebih mudah daripadamysql -u root -p
itu.Saya menemukan info ini - dari semua tempat - dari situs bantuan Raspberry Pi . Bekerja seperti pesona setelah Lubuntu 18.04 mengganggu saya selama beberapa jam.
sumber
Pertama buat dir / var / run / mysqld
dengan perintah:
kemudian tambahkan rig ke dir
setelah coba ini
sumber
Saya memiliki masalah yang persis sama. Setelah berjuang selama satu jam, saya menemukan cara untuk memperbaikinya tanpa menginstal ulang mysql-common, mysql-client, mysql-server.
Pertama-tama, buka "/ var / run / mysqld". Anda akan menemukan bahwa mysql.sock tidak ada. Cukup hapus seluruh direktori mysqld dan buat ulang dan berikan hak istimewa yang diperlukan.
Sekarang, bunuh proses mysql secara keseluruhan. Mungkin saja itu akan menunjukkan Anda "menunggu pembersih halaman" pada menjalankan "/etc/init.d/mysql status" perintah bahkan setelah mematikan layanan.
Untuk sepenuhnya menutup layanan, gunakan
Setelah proses ini terbunuh, coba mulai lagi menggunakan
Dan Anda akan melihat bahwa itu bekerja dengan baik! Dan juga tidak akan ada masalah dalam menghentikannya juga.
sumber