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?
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:
mysql -u root
Anda jelas harus mengubah password root anda setelah instalasi
mysqladmin -u root password [newpassword]
Dalam kebanyakan kasus anda juga harus menyiapkan masing-masing akun pengguna sebelum bekerja secara ekstensif dengan DB juga.
Anda harus me-reset password! langkah-langkah untuk mac osx(diuji dan bekerja) dan ubuntu
Berhenti menggunakan MySQL
sudo service mysql stop
atau
$ sudo /usr/local/mysql/support-files/mysql.server stop
Memulai dalam mode aman:
$ sudo mysqld_safe --skip-grant-tables --skip-networking
(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:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Sebagai per @IberoMedia's komentar, untuk versi yang lebih baru dari MySQL, bidang ini disebut authentication_string
:
mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';
Mulai MySQL menggunakan:
sudo service mysql start
atau
sudo /usr/local/mysql/support-files/mysql.server start
sandi baru anda 'kata'.
jika masih ada masalah mencoba untuk memaksa mengubah pass
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
Setup new user root MySQL password
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
Menghentikan MySQL Server:
/etc/init.d/mysql stop
Mulai server MySQL dan test ini:
mysql -u root -p
Di awal start up server berikut ini terjadi, mengingat bahwa data direktori dari server kosong:
Untuk mengungkapkan hal itu, gunakan perintah berikut:
shell> sudo grep 'temporary password' /var/log/mysqld.log
Mengubah password root sesegera mungkin dengan masuk dengan menghasilkan password sementara dan mengatur sandi untuk akun superuser:
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!';
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
mysql -u root -p
setelah itu meminta anda untuk menyampaikan kata-kata seperti ini
Enter password:
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
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 dan sebelumnya:
$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
saya menginstal MySQL sebagai root pengguna(
$SUDO
) dan punya masalah yang sama Berikut adalah bagaimana saya tetap itu-
$ 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!
Jawabannya mungkin terdengar konyol, tapi setelah membuang-buang jam dari waktu, ini adalah bagaimana aku mendapatkannya untuk bekerja
mysql -u root -p
Saya mendapat pesan kesalahan
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
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 anda
Sekarang 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:
mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+ Exit 1 sudo mysqld_safe --skip-grant-tables
Ikuti perintah di bawah ini langkah demi langkah sampai anda me-reset password anda:
# Stop Your Server First
sudo service mysql stop
# Make MySQL service directory.
sudo mkdir /var/run/mysqld
# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld
# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &
# Log in to your server without any password.
mysql -u root mysql
# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host
FLUSH PRIVILEGES;
EXIT;
#Now you can use your new password to login to your Server
mysql -u root -p
jika masih ada masalah mencoba untuk memaksa mengubah pass
Menghentikan MySQL Server (Linux):
/etc/init.d/mysql stop
Menghentikan MySQL Server (pada Mac OS X):
mysql.server stop
Mulai mysqld_safe daemon dengan --skip-grant-tables
mysqld_safe --skip-grant-tables &
mysql -u root
Setup new user root MySQL password
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
Menghentikan MySQL Server (Linux):
/etc/init.d/mysql stop
Menghentikan MySQL Server (pada Mac OS X):
mysql.server stop
Mulai MySQL server layanan dan uji coba untuk login dengan root:
mysql -u root -p
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
/rumah/kantor/mysql/* r,
} 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:
ps -aef | grep mysql | grep -v grep
2 - membunuh proses:
kill -15 [process id]
Kemudian anda bisa login dengan password awal menggunakan perintah ini:
mysql -uroot -p
Yang meminta anda untuk memasukkan password anda. Hanya masukkan password awal.
Aku punya masalah yang sama:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (menggunakan password: NO)
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:
mysql -u root –pxxxx
Cara yang tepat:
mysql -u root -pxxxx
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.