GNU/Linux >> Belajar Linux >  >> Linux

mysql (mariadb) ERROR 1698 (28000):Akses ditolak untuk pengguna 'root'@'localhost'

Anda perlu mengatur ulang kata sandi. jadi untuk itu

sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;

Gagasan dengan penyiapan baru ini adalah Anda tidak boleh menggunakan kata sandi sama sekali. Lihat Plugin Otentikasi UNIX_SOCKET untuk detailnya.

Yang sangat relevan adalah konten /usr/share/doc/mariadb-server-10.0/README.Debian.gz di Ubuntu 16.04:

Pada pemasangan baru tidak ada kata sandi root yang ditetapkan dan tidak ada lagi pengguna debian-sys-maint yang dibuat. Alih-alih, akun root MariaDB diatur untuk diautentikasi menggunakan soket unix, mis. pemanggilan mysqld apa pun melalui root atau melalui sudo akan membuat pengguna melihat perintah mysqld.

Anda mungkin tidak pernah menghapus "root" pengguna mysql. Meskipun tidak ada kata sandi yang disetel, plugin unix_auth memastikan bahwa itu hanya dapat dijalankan secara lokal sebagai pengguna root.

Kredensial di /etc/mysql/debian.cnf menentukan pengguna yang digunakan oleh skrip init untuk menghentikan server dan melakukan rotasi log. Ini dulunya adalah pengguna debian-sys-maint yang tidak lagi digunakan karena root dapat dijalankan secara langsung.

Jadi jika Anda menonaktifkan plug-in untuk root dan menyetel kata sandi, tugas cron harian akan rusak karena dianggap akan masuk sebagai root tanpa kata sandi, tetapi dengan plug-in.

Nanti tertulis:

Skrip harus dijalankan karena pengguna memiliki izin yang diperlukan dan diidentifikasi melalui unix_socket.

Jadi sepertinya kata sandi tidak boleh lagi digunakan oleh aplikasi.


Saya memecahkan masalah mengikuti jawaban dari posting ini:

Tidak dapat mengatur ulang kata sandi root MySQL (MariaDB)

Seseorang harus mengubah bidang plugin mysql.user untuk semua root menjadi string kosong.


Linux
  1. Cara Mengatur Ulang Kata Sandi Root MySQL Atau MariaDB

  2. Mengontrol akses ke Podman tanpa root untuk pengguna

  3. Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan sandi:Ya) setelah reset sandi LINUX

  1. Aktifkan kata sandi sederhana untuk pengguna root di CentOS

  2. Akses ditolak untuk pengguna tertentu dengan konfigurasi akun PAM

  3. Izinkan pengguna root linux akses root mysql tanpa kata sandi

  1. Kesalahan Akses ditolak membutuhkan hak PROSES [MySQL]

  2. MySQL - ERROR 1045 - Akses ditolak

  3. GALAT 1045 (28000):Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:YA)