GNU/Linux >> Belajar Linux >  >> Linux

MySQL gagal:mysql ERROR 1524 (HY000):Plugin 'auth_socket' tidak dimuat

Saya punya solusi!

Saat mengatur ulang kata sandi root pada langkah 2), ubah juga plugin autentikasi menjadi mysql_native_password :

use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root';  # THIS LINE

flush privileges;
quit;

Ini memungkinkan saya untuk masuk dengan sukses!

Solusi kode lengkap

1. Pertama, jalankan perintah bash ini

sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql

2. Kemudian jalankan perintah mysql => salin tempel ini ke CLI secara manual

use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user

flush privileges;
quit;

3. Jalankan lebih banyak perintah bash

sudo /etc/init.d/mysql stop 
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p 

4. Soket masalah (dari komentar Anda)

Saat Anda melihat soket error, komunitas hadir dengan 2 kemungkinan solusi:

sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

(terima kasih kepada @Cerin)

Atau

mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld  

(terima kasih kepada @Peter Dvukhrechensky)

Jalur buta dan kemungkinan kesalahan tepi

Gunakan 127.0.0.1 daripada localhost

mysql -uroot # "-hlocalhost" is default

Dapat menyebabkan "file hilang" atau kesalahan slt.

mysql -uroot -h127.0.0.1

Bekerja lebih baik.

Lewati masalah soket

Saya telah menemukan banyak cara untuk membuat mysqld.sock file, mengubah hak akses, atau menghubungkannya. Lagipula bukan itu masalahnya.

Lewati my.cnf berkas

Masalahnya juga tidak ada. Jika Anda tidak yakin, ini dapat membantu Anda.


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 quit 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>

Anda dapat mencoba sebagai berikut ini berfungsi untuk saya.

Mulai server:

sudo service mysql start

Sekarang, Buka folder kaus kaki:

cd /var/run

Cadangkan kaus kaki:

sudo cp -rp ./mysqld ./mysqld.bak

Hentikan server:

sudo service mysql stop

Pulihkan kaus kaki:

sudo mv ./mysqld.bak ./mysqld

Mulai mysqld_safe:

 sudo mysqld_safe --skip-grant-tables --skip-networking &

Init shell mysql:

 mysql -u root

Ubah kata sandi:

Oleh karena itu, Pertama pilih database

mysql> use mysql;

Sekarang masukkan dua kueri di bawah ini:

mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root'; 

Sekarang, semuanya akan baik-baik saja.

mysql> flush privileges;
mysql> quit;

Untuk pemeriksaan:

mysql -u root -p

selesai!

N.B, After login please change the password again from phpmyadmin

Sekarang centang hostname/phpmyadmin

Username: root

Password: 123456

Untuk detail lebih lanjut, silakan periksa Cara mereset kata sandi phpmyadmin yang terlupakan di Ubuntu


mysql perintah secara default menggunakan soket UNIX untuk terhubung ke MySQL.

Jika Anda menggunakan MariaDB, Anda perlu memuat Unix Socket Authentication Plugin di sisi server.

Anda dapat melakukannya dengan mengedit [mysqld] konfigurasi seperti ini:

[mysqld]
plugin-load-add = auth_socket.so

Bergantung pada distribusi, file konfigurasi biasanya terletak di /etc/mysql/ atau /usr/local/etc/mysql/

Jika unix_socket=OFF diatur di bagian yang sama, aktifkan dengan mengubahnya menjadi unix_socket=ON atau perbaikan ini tidak berlaku.


Linux
  1. Pesan Error Pada Arista Transcoder, Bagaimana Cara Instal Plugin Ffdeinterlace?

  2. visudo:perintah tidak ditemukan

  3. sudoedit:perintah tidak ditemukan

  1. sudo:perintah tidak ditemukan

  2. Perbaiki sudo:add-apt-repository:perintah tidak ditemukan kesalahan

  3. MySQL - ERROR 1045 - Akses ditolak

  1. c_rehash :Perintah tidak ditemukan kesalahan – Solusi

  2. Tidak dapat terhubung ke kesalahan server MySQL 111

  3. Pulihkan database mysql - mysql/mysqldump memberikan tabel <database>.<tablename> tidak ada (1146)