Hari ini saya melakukan login sebagai root ke Ubuntu 14.04.1 LTS ll
dan kemudian apt-get install mariadb-server
(tanpa sudo tetapi sebagai root).
Dengan mySQL -h localhost -u root --password=<PW>
saya punya
Akses ditolak untuk 'root' @ 'localhost' pengguna (menggunakan kata sandi: YA)
Dengan mySQL -u root -p
saya masuk ke DB dan melakukannya
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;
Tapi ini tidak membantu. Apakah kamu punya ide Saya tidak menemukan jawaban untuk pertanyaan serupa.
Jawaban:
TL; DR: Untuk mengakses versi mysql / mariadb yang lebih baru setelah sebagai pengguna root, setelah instalasi baru, Anda harus berada di shell root (yaitu
sudo mysql -u root
, ataumysql -u root
di dalam shell yang dimulai olehsu -
atau yangsudo -i
pertama)Baru saja melakukan peningkatan yang sama, di Ubuntu, saya mengalami masalah yang sama.
Yang aneh adalah itu
Akan menerima kata sandi saya, dan mengizinkan saya untuk mengaturnya, tetapi saya tidak bisa masuk
root
melaluimysql
klienSaya harus memulai mariadb dengan
untuk mendapatkan akses sebagai root, sementara semua pengguna lain masih dapat mengakses dengan baik.
Melihat
mysql.user
tabel yang saya perhatikan untuk root,plugin
kolom disetel keunix_socket
sedangkan semua pengguna lain disetel ke 'mysql_native_password'. Sekilas melihat halaman ini: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ menjelaskan bahwa Unix Socket memungkinkan masuk dengan mencocokkanuid
proses yang menjalankan klien dengan pengguna dimysql.user
meja. Dengan kata lain untuk mengakses mariadb karenaroot
Anda harus masuk sebagai root.Benar-benar me-restart daemon mariadb saya dengan otentikasi diperlukan saya dapat login sebagai root dengan
atau
Setelah melakukan ini, saya berpikir tentang cara mengakses tanpa harus melakukan sudo, yang hanya masalah menjalankan kueri mysql ini
(mengganti
<password>
dengan kata sandi root mysql yang Anda inginkan). Ini password login yang diaktifkan untuk pengguna root.Alternatifnya menjalankan kueri mysql:
Akan mengubah akun root untuk menggunakan login kata sandi tanpa mengubah kata sandi, tetapi ini mungkin meninggalkan Anda dengan instalasi mysql / mariadb tanpa kata sandi root di atasnya.
Setelah salah satu dari ini, Anda perlu memulai ulang mysql / mariadb:
Dan voila saya memiliki akses dari akun pribadi saya melalui
mysql -u root -p
PERHATIKAN BAHWA MELAKUKAN INI MENGURANGI KEAMANAN Mungkin pengembang MariaDB telah memilih agar akses root berfungsi seperti ini karena alasan yang bagus.
Memikirkannya, saya cukup senang untuk melakukannya,
sudo mysql -u root -p
jadi saya beralih kembali ke itu, tetapi saya pikir saya akan memposting solusi saya karena saya tidak dapat menemukannya di tempat lain.sumber
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
perintah dua kali sebelum membersihkan privasi?sudo service mysql restart
Di Ubuntu 16.04 LTS yang bersih, login root MariaDB untuk localhost diubah dari gaya kata sandi menjadi gaya login sudo ...
jadi, lakukan saja
karena kita ingin masuk dengan kata sandi, buat 'pengguna' pengguna lain
di konsol MariaDB ... (Anda masuk ke konsol MariaDB dengan 'sudo mysql -u root')
lalu di prompt bash shell,
dan Anda bisa login dengan 'user' dengan 'yourpassword' di localhost
sumber
Coba perintahnya
tekan enter dan tetapkan kata sandi baru untuk root di mysql / mariadb .
Jika Anda mendapatkan error seperti
aktifkan layanan dengan
sekarang jika Anda masuk kembali dengan
jika Anda mengikuti masalah, masuk dengan
sudo su
danmysql -u root -p
sekarang terapkan izin ke rootGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
ini memperbaiki masalah saya di MariaDB .
Semoga berhasil
sumber
dari superuser menerima jawaban :
sumber
Saya harus masuk ke Ubuntu sebagai root untuk mengakses Mariadb sebagai root. Mungkin ada hubungannya dengan "Harden ..." yang meminta Anda lakukan saat pertama kali menginstal. Begitu:
dan Anda masuk.
sumber
Perintah baru untuk membersihkan hak istimewa adalah:
FLUSH PRIVILEGES
Perintah lama
FLUSH ALL PRIVILEGES
tidak berfungsi lagi.Anda akan mendapatkan error yang terlihat seperti itu:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALL PRIVILEGES' at line 1
Semoga ini membantu :)
sumber
Jalankan mysql_upgrade.
Periksa itu
kata
Periksa apakah tabel ada _mysql.proxies_priv_.
Akses ditolak untuk 'root' @ 'localhost' pengguna ketika mencoba memberikan hak istimewa. Bagaimana cara memberikan hak istimewa?
sumber
Sistem seperti Ubuntu lebih suka menggunakan plugin auth_socket . Ini akan mencoba untuk mengotentikasi dengan membandingkan nama pengguna Anda di DB dan proses yang membuat permintaan mysql; itu dijelaskan di sini
Sebagai gantinya Anda mungkin ingin kembali dengan mysql_native_password , yang akan membutuhkan pengguna / kata sandi untuk mengotentikasi.
Tentang metode untuk mencapai itu, saya merekomendasikan ini sebagai gantinya.
sumber