ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Saya seorang insinyur listrik yang terutama bermain-main dengan sistem tenaga alih pemrograman. Baru-baru ini, saya telah mengikuti petunjuk untuk menginstal perangkat lunak suite di Ubuntu. Saya tidak memiliki pengetahuan tentang mySQL
sama sekali, benar-benar. Saya telah melakukan hal berikut instalasi di Ubuntu.
sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp
Kemudian saya lakukan
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
Saya berakhir dengan pesan galat berikut.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Bagaimana saya dapat memperbaiki dan melanjutkan?
155
27
Catatan: Untuk MySQL 5.7+ silakan lihat jawaban dari @Lahiru untuk pertanyaan ini. Yang berisi lebih banyak informasi saat ini.
Untuk MySQL < 5.7:
Default password root adalah kosong (yaitu string kosong) tidak
root
. Sehingga anda hanya dapat login sebagai:Anda jelas harus mengubah password root anda setelah instalasi
Dalam kebanyakan kasus anda juga harus menyiapkan masing-masing akun pengguna sebelum bekerja secara ekstensif dengan DB juga.
Saya bisa memecahkan masalah ini dengan mengeksekusi pernyataan ini
Yang akan mengubah password root.
Anda harus me-reset password! langkah-langkah untuk mac osx(diuji dan bekerja) dan ubuntu
Berhenti menggunakan MySQL
atau
Memulai dalam mode aman:
(di atas garis adalah seluruh perintah)
Ini akan menjadi sebuah perintah yang sedang berlangsung sampai proses ini selesai maka buka terminal/shell jendela, log in tanpa password:
Sebagai per @IberoMedia's komentar, untuk versi yang lebih baru dari MySQL, bidang ini disebut
authentication_string
:Mulai MySQL menggunakan:
atau
sandi baru anda 'kata'.
jika masih ada masalah mencoba untuk memaksa mengubah pass
Setup new user root MySQL password
Menghentikan MySQL Server:
Mulai server MySQL dan test ini:
Di awal start up server berikut ini terjadi, mengingat bahwa data direktori dari server kosong:
Untuk mengungkapkan hal itu, gunakan perintah berikut:
Mengubah password root sesegera mungkin dengan masuk dengan menghasilkan password sementara dan mengatur sandi untuk akun superuser:
Saya tahu ini Pertanyaan lama tapi aku merasa ini mungkin bisa membantu seseorang. Baru-baru ini saya dihadapkan dengan masalah yang sama tapi dalam kasus saya, saya ingat kata sandi saya cukup baik-baik saja tetapi terus memberi saya kesalahan yang sama. Aku mencoba begitu banyak solusi tapi masih tidak membantu maka saya mencoba ini
setelah itu meminta anda untuk menyampaikan kata-kata seperti ini
dan kemudian saya mengetik kata sandi yang saya gunakan. Yang's semua
Hal itu terjadi ketika password anda hilang.
Langkah-langkah untuk mengubah password bila anda lupa:
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables --skip-networking &
Ampersand pada akhir perintah ini akan membuat proses ini berjalan di latar belakang sehingga anda dapat terus menggunakan terminal anda dan jalankan #mysql -u root, tidak akan meminta password.
Jika anda mendapatkan error seperti di bawah ini:
2018-02-12T08:57:39.826071 Z mysqld_safe Direktori '/var/run/mysqld' untuk UNIX soket file don't ada. mysql -u root ERROR 2002 (HY000): Bisa't terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.kaus kaki' (2) [1]+ Keluar 1
sudo mkdir /var/run/mysqld
Memberikan pengguna MySQL izin untuk menulis ke layanan direktori.
sudo chown mysql: /var/run/mysqld
Menjalankan perintah yang sama pada langkah 2 untuk menjalankan mysql di latar belakang.
Menjalankan mysql -u root anda akan mendapatkan mysql console tanpa memasukkan password.
Jalankan perintah berikut ini
FLUSH PRIVILEGES;
Untuk MySQL 5.7.6 dan yang lebih baru
MENGUBAH USER 'root'@'localhost' DIIDENTIFIKASI DENGAN 'new_password';
Untuk MySQL 5.7.5 dan lebih tua
SET PASSWORD UNTUK 'root'@'localhost' = PASSWORD('new_password');
Jika PENGGUNA MENGUBAH perintah doesn't bekerja menggunakan:
UPDATE mysql.pengguna MENGATUR authentication_string = PASSWORD('new_password') WHERE User = 'root' DAN Host = 'localhost';
Sekarang keluar
sudo kill
cat /var/run/mysqld/mysqld.pid
sudo systemctl start mysql
Saya menggunakan Ubuntu-16.04 : menginstal mysql - 5.7. Saya Memiliki masalah yang sama : Login ditolak untuk user root.
Mencoba langkah di bawah ini:
dpkg --get-selections | grep mysql
(untuk mendapatkan versi mysql).dpkg-reconfigure mysql-server-5.7
mysql -u root -p
Tanpa -p yang doesn't meminta anda untuk meminta password. Setelah anda berada di, anda bisa membuat user dengan password dengan langkah-langkah berikut : `` BUAT PENGGUNA 'your_new_username'@'anda-hostname' DIIDENTIFIKASI DENGAN 'anda-password';
GRANT ALL PRIVILEGES ON . ke 'your_new_username'@'anda-hostname' DENGAN GRANT OPTION; ``
Keluar dari akar dan login dari <nama> anda berikan di atas.
mysql -u <your_new_username> -p
Untuk beberapa alasan masih hanya mengetik mysql tidak bekerja. DI SEMUA. Saya sarankan untuk membuat suatu kebiasaan untuk menggunakan
mysql -u <nama> -p
.Saya datang di ini sangat mengganggu masalah dan menemukan banyak jawaban yang tidak bekerja. Solusi terbaik saya datang di adalah untuk benar-benar uninstall mysql dan re-install. Di install ulang-anda menetapkan password root dan ini tetap masalah.
``
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5 sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get autoremove sudo apt-get autoclean ``
Saya menemukan kode ini di tempat lain sehingga saya tidak mengambil kredit untuk itu. Tapi itu bekerja. Untuk menginstal mysql setelah menguninstall itu saya pikir digital ocean memiliki tutorial yang baik di atasnya. Checkout saya gist ini.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
Silakan baca dokumentasi resmi: Mysql: Cara Reset Password Root
Jika anda memiliki akses ke terminal:
MySQL 5.7.6 dan kemudian:
MySQL 5.7.5 dan sebelumnya:
$ sudo cat /etc/mysql/debian.cnf
Ini akan menunjukkan rincian sebagai-
# Secara otomatis dihasilkan untuk Debian script. JANGAN SENTUH! [klien] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.kaus kaki [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock
Di atas kita dapat melihat password saja yang akan kita gunakan
(GUx0RblkD3sPhHL5)
yang di prompt-mysql -u debian-sys-maint -p Masukkan password:
sekarang memberikan password(GUx0RblkD3sPhHL5).keluar
dari MySQL dan login lagi sebagai-mysql -u root -p Masukkan password:
Sekarang memberikan password baru. Yang's semua, kita memiliki password baru untuk penggunaan lebih lanjut.Ini bekerja untuk saya, semoga membantu anda juga!
hanya masuk terminal
mysql -u root -p . dari itu akan meminta password untuk anda
Jawabannya mungkin terdengar konyol, tapi setelah membuang-buang jam dari waktu, ini adalah bagaimana aku mendapatkannya untuk bekerja
Saya mendapat pesan kesalahan
Meskipun saya mengetik password yang benar(temporary password yang anda dapatkan ketika anda pertama kali menginstal mysql)
Aku benar ketika saya mengetik di password ketika password prompt berkedip
Saya menggunakan mysql-5.7.12-osx10.11-x86_64.dmg di Mac OSX
Proses instalasi secara otomatis set up sementara password untuk user root. Anda harus menyimpan password. Password tidak dapat dipulihkan.
Ikuti instruksi
cd /usr/local/mysql/bin/
SET PASSWORD UNTUK 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');
Jika anda ingin mengatur sandi anda: "root" maka perintah akan sama,SET PASSWORD UNTUK 'root'@'localhost' = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD tidak PERNAH BERAKHIR;
keluar
./mysql -u root -p
Untuk kenyamanan, anda harus menambahkan
"/usr/local/mysql/bin"
untuk JALAN andaSekarang dari mana saja anda bisa ketik
./mysql -u root -p
dan kemudian ketik password dan anda akan mendapatkan mysql> prompt.Semoga membantu.
Ini akan bekerja jika anda memasukkan perintah yang diucapkan dalam jawaban yang lain namun anda masih mendapatkan kesalahan ini:
Ikuti perintah di bawah ini langkah demi langkah sampai anda me-reset password anda:
jika masih ada masalah mencoba untuk memaksa mengubah pass
Menghentikan MySQL Server (Linux):
Menghentikan MySQL Server (pada Mac OS X):
Mulai mysqld_safe daemon dengan --skip-grant-tables
Setup new user root MySQL password
Menghentikan MySQL Server (Linux):
Menghentikan MySQL Server (pada Mac OS X):
Mulai MySQL server layanan dan uji coba untuk login dengan root:
Hanya satu baris dan memecahkan masalah saya.
Di Ubuntu 16.04 (MySQL versi 5.7.13) saya mampu menyelesaikan masalah dengan langkah-langkah di bawah ini:
Ikuti petunjuk dalam bagian B. 5.3.2.2 Reset Password Root: Unix dan Unix-Seperti Sistem MySQL 5.7 referensi manual
Ketika saya mencoba #sudo mysqld_safe --init-file=/home/saya/mysql-init & gagal. Kesalahan adalah di /var/log/mysql/kesalahan.log
2016-08-10T11:41:20.421946 Z 0 [Catatan] Pelaksanaan init_file '/home/saya/mysql/mysql-init' dimulai. 2016-08-10T11:41:20.422070 Z 0 [ERROR] /usr/sbin/mysqld: File '/home/saya/mysql/mysql-init' tidak ditemukan (Errcode: 13 - Permission denied) 2016-08-10T11:41:20.422096 Z 0 [ERROR] Batal
Izin file mysql-init tidak masalah, perlu mengedit apparmor izin
.... /var/log/mysql/ r, /var/log/mysql/** rw
Memungkinkan pengguna init file
/rumah/kantor/mysql/* r,
Situs-spesifik penambahan dan menimpa. Lihat lokal/README untuk rincian.
include <local/usr.sbin.mysqld>
} 4. Melakukan #sudo /etc/init.d/apparmor reload
Mulai mysqld_safe lagi mencoba langkah 2 di atas. Cek di /var/log/mysql/kesalahan.log pastikan tidak ada kesalahan dan mysqld berhasil memulai
Run #mysql -u root -p
Masukkan password:
Masukkan password yang anda tentukan di mysql-init. Anda harus dapat login sebagai root sekarang.
Shutdown mysqld_safe oleh #sudo mysqladmin -u root -p shutdown
Mulai mysqld cara biasa dengan #sudo systemctl start mysql
Pada Mac, Jika anda memiliki masalah dalam login dengan password yang diberikan dalam instalasi, mungkin anda hanya bisa hanya membunuh mysql proses dan kemudian mencoba.
Jadi: 1 - jalankan perintah berikut untuk menemukan PID dari mysql:
2 - membunuh proses:
Kemudian anda bisa login dengan password awal menggunakan perintah ini:
Yang meminta anda untuk memasukkan password anda. Hanya masukkan password awal.
Aku punya masalah yang sama:
Tapi dalam kasus saya, penyebabnya adalah benar-benar konyol. Saya menyalin perintah dari dokumen Word, dan masalahnya adalah bahwa sebuah tanda hubung tidak memiliki ASCII kode 2D tapi Unicode E28093.
Cara yang salah:
Cara yang tepat:
Keduanya terlihat sama tapi aren't yang sama (coba itu, copy dan paste mengganti password anda).
Dihadapkan dengan jenis kesalahan, rekomendasi ini adalah untuk mencoba mengetik perintah daripada menyalin dan menyisipkan.