Lingkungan lokal saya adalah:
- Ubuntu 16.04 baru
- dengan PHP 7
dengan menginstal MySQL 5.7
sudo apt-get install mysql-common mysql-server
Ketika saya mencoba masuk ke MySQL (melalui CLI):
mysql -u root -p
Saya menemukan masalah siklik dengan 3 langkah.
1) Pertama adalah beberapa masalah soket
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Solusi: Mulai ulang PC.
Yang menyebabkan kesalahan lain:
2) Dengan akses ditolak
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Masalah yang mungkin terjadi? Kata sandi salah untuk pengguna "root"!
Solusi: setel ulang kata sandi root dengan tutorial ini .
Dengan kata sandi yang benar dan soket yang berfungsi, ada kesalahan terakhir.
3) Plugin auth salah
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Di sini saya berhenti atau entah bagaimana harus 1) lagi.
mysql
linux
ubuntu
auth-socket
Tomáš Votruba
sumber
sumber
Jawaban:
Saya punya solusi!
Saat mengatur ulang kata sandi root pada langkah 2), ubah juga plugin auth menjadi
mysql_native_password
:Ini memungkinkan saya untuk berhasil masuk!
Solusi kode lengkap
1. jalankan perintah bash
1. pertama, jalankan perintah bash ini
2. kemudian jalankan perintah mysql => salin tempel ini ke cli secara manual
3. jalankan lebih banyak perintah bash
4. Masalah soket (dari komentar Anda)
Saat Anda melihat kesalahan soket , komunitas datang dengan 2 kemungkinan solusi:
(terima kasih kepada @Cerin)
Atau
(terima kasih kepada @Peter Dvukhrechensky)
Jalur buta dan kemungkinan kesalahan tepi
Gunakan 127.0.0.1 sebagai ganti localhost
Dapat menyebabkan "file hilang" atau kesalahan slt.
Bekerja lebih baik.
Lewati masalah soket
Saya telah menemukan banyak cara untuk membuat
mysqld.sock
file, mengubah hak akses atau menghubungkannya. Itu bukan masalahnya.Lewati
my.cnf
fileMasalahnya juga tidak ada. Jika Anda tidak yakin, ini mungkin membantu Anda .
sumber
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld; sudo mysqld_safe --skip-grant-tables &
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
Mungkin menghemat waktu seseorangAnda dapat mencoba sebagai berikut ini berhasil untuk saya.
Mulai server:
Sekarang, Buka folder sock:
Cadangkan kaus kaki:
Hentikan server:
Kembalikan kaus kaki:
Mulai mysqld_safe:
Shell mysql init:
Ganti kata sandi:
Oleh karena itu, Pertama pilih database
Sekarang masukkan di bawah dua kueri:
Sekarang, semuanya akan baik-baik saja.
Untuk mengecek:
selesai!
N.B, After login please change the password again from phpmyadmin
Sekarang periksa
hostname/phpmyadmin
Username: root
Password: 123456
Untuk lebih jelasnya silahkan cek Bagaimana mereset password phpmyadmin yang terlupa di Ubuntu
sumber
The
mysql
perintah secara default menggunakan UNIX soket untuk menghubungkan ke MySQL.Jika Anda menggunakan MariaDB, Anda perlu memuat Plugin Otentikasi Soket Unix di sisi server.
Anda dapat melakukannya dengan mengedit
[mysqld]
konfigurasi seperti ini:Bergantung pada distribusinya, file konfigurasi biasanya terletak di
/etc/mysql/
atau/usr/local/etc/mysql/
sumber
Anda dapat mencoba beberapa langkah ini:
Hentikan Layanan Mysql 1st
sudo /etc/init.d/mysql stop
Masuk sebagai root tanpa kata sandi
sudo mysqld_safe --skip-grant-tables &
Setelah masuk terminal mysql Anda harus menjalankan perintah lebih lanjut:
Setelah Anda me-restart server mysql Anda Jika Anda masih menghadapi kesalahan, Anda harus mengunjungi: Reset MySQL 5.7 kata sandi root Ubuntu 16.04
sumber
Untuk Ubuntu 18.04 dan mysql 5.7
Langkah 1:
sudo mkdir /var/run/mysqld;
Langkah 2:
sudo chown mysql /var/run/mysqld
langkah 3:
sudo mysqld_safe --skip-grant-tables
& keluar (gunakan berhenti jika macet)masuk ke mysql tanpa kata sandi
langkah 4:
sudo mysql --user=root mysql
langkah 5:
SELECT user,authentication_string,plugin,host FROM mysql.user;
langkah 6:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
sekarang login dengan
mysql -u root -p <root>
sumber
$ mysql -u root -p
tetapi akses ditolak.Access denied for user 'root'@'localhost' (using password: YES)
Saya mencoba memasukkan kata sandi 'YA'Cobalah: sudo mysql_secure_installation
Bekerja di Ubuntu 18.04
sumber
Jika seseorang mendarat di sini setelah melakukan kesalahan yang sama dengan yang saya lakukan:
plugin="mysql_native_password"
sementara. Melakukan tugas saya.plugin="auth_socket"
yang terjadimysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"
mysql_safe
untuk melewati otentikasi untuk beralih ke plugin yang sesuaiplugin="unix_socket"
Mudah-mudahan ini menghemat waktu seseorang jika mereka menerima pesan kesalahan poster asli, tetapi penyebab sebenarnya adalah kesalahan nama plugin, tidak benar-benar kekurangan keberadaan plugin "auth_socket" itu sendiri, yang menurut dokumentasi MariaDB :
sumber
Anda dapat mencoba dengan perintah di bawah ini:
sumber