$ ./mysqladmin -u root -p ' dihapus '
Masukkan kata sandi:
mysqladmin: terhubung ke server di kesalahan 'localhost' gagal:
'Akses ditolak untuk pengguna' root '@' localhost '(menggunakan kata sandi: YES)'
Bagaimana saya bisa memperbaikinya?
mysql
sql
database
database-connection
Trivedi Harsh
sumber
sumber
~/.my.cnf
file.-p
opsi itu sendiri dan mysql akan meminta kata sandi.Jawaban:
/etc/my.cnf
atau/etc/mysql/my.cnf
, tergantung distro Anda.skip-grant-tables
bawah[mysqld]
mysql -u root -p
mysql> flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
mysql -u root -p
sumber
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 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
Saya melakukan ini setelah langkah 5. Berikut adalah bagaimana output command prompt saya terlihat:MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
sudo systemctl restart mariadb
Semua solusi yang saya temukan jauh lebih kompleks daripada yang diperlukan dan tidak ada yang berhasil untuk saya. Inilah solusi yang memecahkan masalah saya. Tidak perlu memulai ulang mysqld atau memulainya dengan hak istimewa khusus.
Dengan satu permintaan, kami mengubah auth_plugin menjadi mysql_native_password dan menyetel kata sandi root untuk di- root (jangan ragu untuk mengubahnya di dalam kueri)
Sekarang Anda harus bisa login dengan root. Informasi lebih lanjut dapat ditemukan di dokumentasi mysql
(keluar dari konsol mysql dengan Ctrl + D atau dengan mengetikkan exit )
sumber
Saya mencoba banyak langkah untuk memperbaiki masalah ini. Ada begitu banyak sumber untuk solusi yang mungkin untuk masalah ini yang sulit untuk menyaring pengertian dari omong kosong. Saya akhirnya menemukan solusi yang baik di sini :
Langkah 1: Identifikasi Versi Database
Anda akan melihat beberapa output seperti ini dengan MySQL:
Atau keluaran seperti ini untuk MariaDB:
Catat basis data dan versi mana yang Anda jalankan, karena Anda akan menggunakannya nanti. Selanjutnya, Anda harus menghentikan basis data sehingga Anda dapat mengaksesnya secara manual.
Langkah 2: Menghentikan Server Database
Untuk mengubah kata sandi root, Anda harus mematikan server database terlebih dahulu.
Anda dapat melakukannya untuk MySQL dengan:
Dan untuk MariaDB dengan:
Langkah 3: Restart Server Database Tanpa Memeriksa Izin
Jika Anda menjalankan MySQL dan MariaDB tanpa memuat informasi tentang hak pengguna, itu akan memungkinkan Anda untuk mengakses baris perintah basis data dengan hak akses root tanpa memberikan kata sandi. Ini akan memungkinkan Anda untuk mendapatkan akses ke database tanpa menyadarinya.
Untuk melakukan ini, Anda harus menghentikan database dari memuat tabel hibah, yang menyimpan informasi hak istimewa pengguna. Karena ini sedikit risiko keamanan, Anda juga harus melewati jaringan juga untuk mencegah klien lain terhubung.
Mulai database tanpa memuat tabel hibah atau mengaktifkan jaringan:
Ampersand di akhir perintah ini akan membuat proses ini berjalan di latar belakang sehingga Anda dapat terus menggunakan terminal Anda.
Sekarang Anda dapat terhubung ke database sebagai pengguna root, yang seharusnya tidak meminta kata sandi.
Anda akan segera melihat prompt shell basis data.
MySQL Prompt
Prompt MariaDB
Sekarang Anda memiliki akses root, Anda dapat mengubah kata sandi root.
Langkah 4: Mengubah Kata Sandi Root
Sekarang kita benar-benar dapat mengubah kata sandi root.
Untuk MySQL 5.7.6 dan yang lebih baru serta MariaDB 10.1.20 dan yang lebih baru , gunakan perintah berikut:
Untuk MySQL 5.7.5 dan yang lebih lama serta MariaDB 10.1.20 dan yang lebih lama , gunakan:
Pastikan untuk mengganti
new_password
dengan kata sandi pilihan baru Anda.Catatan: Jika
ALTER USER
perintah tidak berfungsi, biasanya ini mengindikasikan masalah yang lebih besar. Namun, Anda dapat mencobaUPDATE ... SET
mengatur ulang kata sandi root.[PENTING] Ini adalah baris spesifik yang memperbaiki masalah khusus saya:
Ingatlah untuk memuat kembali tabel hibah setelah ini.
Dalam kedua kasus, Anda akan melihat konfirmasi bahwa perintah telah berhasil dijalankan.
Kata sandi telah diubah, jadi Anda sekarang dapat menghentikan instance manual dari server database dan memulai kembali seperti sebelumnya.
Langkah 5: Mulai Ulang Server Database Secara Normal
Tutorial ini masuk ke beberapa langkah lebih lanjut untuk me-restart database, tetapi satu-satunya bagian yang saya gunakan adalah ini:
Untuk MySQL, gunakan: $ sudo systemctl start mysql
Untuk MariaDB, gunakan:
Sekarang Anda dapat mengonfirmasi bahwa kata sandi baru telah diterapkan dengan benar dengan menjalankan:
Perintah sekarang harus meminta kata sandi yang baru ditetapkan. Masukkan, dan Anda harus mendapatkan akses ke prompt database seperti yang diharapkan.
Kesimpulan
Anda sekarang memiliki akses administratif ke server MySQL atau MariaDB yang dipulihkan. Pastikan kata sandi root baru yang Anda pilih kuat dan aman dan simpan di tempat yang aman.
sumber
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
ini telah menjadi penyelamat bagi saya!Tidak ada jawaban di atas yang membantu saya dengan masalah ini, jadi inilah solusi yang saya temukan .
Bagian yang relevan:
sumber
Untuk pengguna Ubuntu / Debian
( dapat bekerja pada distro lain terutama yang berbasis debian)
Jalankan yang berikut ini untuk terhubung sebagai
root
(tanpa kata sandi)Jika Anda tidak ingin menambahkan
--defaults-file
setiap kali Anda ingin terhubungroot
, Anda dapat menyalin/etc/mysql/debian.cnf
ke direktori home Anda:lalu:
sumber
Setelah mencoba semua jawaban yang lain, inilah yang akhirnya berhasil untuk saya
Saya menemukan jawabannya di posting ini: https://medium.com/@chiragpatel_52497/solved-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06
sumber
skip-grant-table
(my.conf atau dalammysql
perintah) tidak berfungsi. Saya bisa menggunakan akun layanan ( askubuntu.com/a/120769/169836 ) tetapiUPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';
tidak berhasil. Hanya ketika ketika menggunakan bagian plugin hal-hal bekerja. Terima kasih ~Untuk pengguna linux baru ini bisa menjadi tugas yang menakutkan. Biarkan saya memperbarui ini dengan mysql 8 (versi terbaru yang tersedia saat ini adalah 8.0.12 pada 12-Sep-2018)
Itu dia.
sumber
Di meja kerja MySQL Anda, Anda dapat pergi ke bilah sisi kiri, di bawah Manajemen pilih "Pengguna dan Hak Istimewa", klik root di bawah Akun Pengguna, di bagian kanan klik tab "Batas Akun" untuk menambah kueri maks, pembaruan, dll, dan lalu klik tab "Peran Administratif" dan centang kotak untuk memberikan akses akun. Semoga itu bisa membantu!
sumber
Saya melakukan ini untuk mengatur kata sandi root saya pada pengaturan awal MySQL di OSx. Buka terminal.
Tutup terminal dan buka terminal baru. Dan berikut ini bekerja di Linux, untuk mengatur kata sandi root.
(sudo mysqld_safe --skip-grant-tables: Ini tidak berhasil untuk saya pertama kali. Tapi percobaan kedua, sukses adalah sukses.)
Kemudian login ke MySQL
Sekarang ubah kata sandi:
Mulai ulang MySQL:
sumber
Dalam kasus saya di bawah Debian 10, kesalahannya
dipecahkan oleh (CARA BAIK)
JALAN YANG BURUK:
sumber
Ugh- tidak ada yang berhasil untuk saya! Saya memiliki mesin CentOS 7.4 yang menjalankan mariadb 5.5.64.
Apa yang harus saya lakukan adalah ini, tepat setelah pemasangan mariadb dari yum;
Ini
mysql_secure_installation
akan membawa Anda melalui sejumlah langkah, termasuk "Setel kata sandi root? [Y / n]". Katakan saja "y" dan berikan kata sandi. Jawab pertanyaan lain sesuai keinginan.Kemudian Anda bisa masuk dengan kata sandi, menggunakan
Itu akan bertahan
Kunci
Kemudian, saya memeriksa
/bin/mysql_secure_installation
kode sumber untuk mengetahui bagaimana secara ajaib dapat mengubah kata sandi root dan tidak ada jawaban lain di sini yang bisa. Bit impor adalah:... Dikatakan
SET Password=...
dan tidakSET authentication_string = PASSWORD...
. Jadi, prosedur yang tepat untuk versi ini (5.5.64) adalah:Dari prompt mysql>:
bunuh menjalankan mysqld_safe. restart mariadb. Login sebagai root:
mysql -u -p
. Gunakan kata sandi baru Anda.Jika mau, Anda dapat mengatur semua kata sandi root sekaligus. Saya pikir ini bijaksana:
Ini akan melakukan pembaruan pada semua kata sandi root: yaitu, untuk "localhost", "127.0.0.1", dan ":: 1"
Di masa mendatang, ketika saya pergi ke RHEL8 atau apa pun yang Anda miliki, saya akan mencoba untuk mengingat untuk memeriksa / bin / mysql_secure_installation dan melihat bagaimana orang-orang melakukannya, siapa yang mengkonfigurasi mariadb untuk OS ini.
sumber
Jika Anda seperti saya dan semua saran di atas gagal, lanjutkan untuk mencopot semua versi mysql di mesin Anda, cari semua file mysql yang tersisa menggunakan perintah ini
sudo find / -name "mysql"
danrm -rf
setiap file atau direktori dengan nama mysql terlampir (Anda harus melewati file terkait ke perpustakaan bahasa pemrograman). Sekarang instal versi baru MySQL dan selamat menikmati. NB: Anda akan kehilangan semua data Anda jadi pertimbangkan dulu pilihan Anda.sumber
Itu bisa terjadi jika Anda tidak memiliki cukup hak istimewa. Ketik
su
, masukkan kata sandi root dan coba lagi.sumber
Oke, saya tahu ini adalah utas lama tetapi jika Anda mencapai halaman ini melalui Google seperti yang saya lakukan dan tidak ada solusi di atas yang berfungsi, ternyata kesalahannya adalah 100% kebodohan di pihak saya. Saya tidak terhubung ke server. Setelah terhubung semuanya lancar.
Dalam hal ini membantu untuk mengetahui pengaturan saya, saya menggunakan Sequel Pro dan mencoba untuk menghubungkannya dengan Node menggunakan paket NPM, mysql. Saya tidak berpikir saya harus benar-benar terhubung (selain menjalankan Sequel Pro) karena saya sudah melakukannya dari aplikasi saya.
sumber
Solusi: Menyerah!
Dengarkan saya, saya menghabiskan sekitar dua hari penuh untuk mencoba membuat MySQL tidak berhasil, selalu terjebak dengan kesalahan izin, tidak ada yang diperbaiki oleh jawaban di utas ini. Sampai pada titik yang saya pikir jika saya melanjutkan saya akan menjadi gila.
Karena kesabaran untuk membuatnya berfungsi, saya mengirim perintah untuk menginstal SQLite, hanya menggunakan 450KB, dan itu bekerja dengan baik sejak kata go.
Jika Anda tidak memiliki kesabaran seorang suci, gunakan SQLite dan hemat banyak waktu, tenaga, rasa sakit, dan ruang penyimpanan ..!
sumber