Bagaimana saya bisa menghapus kata sandi untuk MySQL? Saya tidak ingin memiliki kata sandi untuk terhubung ke database. Server saya menjalankan Ubuntu.
Sama seperti masalah minat, mengapa Anda tidak menginginkan kata sandi?
John Gardeniers
Sebagai contoh saya mengalami kesalahan ketika saya menjalankan "dpkg-reconfigure phpmyadmin". Berhenti dengan kesalahan 1045 dengan akses ditolak root @ localhost "password: no" berakhir.
Lacek
Jawaban:
29
Secara pribadi, saya pikir lebih baik mengatur kata sandi dan menyimpannya di /root/.my.cnf:
Pertama:
mysqladmin -u root password 'asdfghjkl'
Kemudian edit file .my.cnf root:
[client]
password = asdfghjkl
Pastikan untuk chmod 0600 .my.cnf.
Sekarang Anda memiliki kata sandi tetapi Anda tidak lagi diminta untuk itu. Instalasi server MySQL default saya adalah kata sandi unik yang benar-benar acak untuk setiap server MySQL, disimpan dalam file .my.cnf seperti ini.
Saya sangat setuju dengan pengaturan lingkungan Anda untuk secara otomatis mengotentikasi Anda vs menghapus kata sandi.
Zoredache
2
Anda mungkin perlu mengutip kata sandi itu di .my.cnf. Itu tidak bekerja untuk saya tanpa.
user67641
1
@ user67641: Mungkin tergantung pada versi dan apa yang ada dalam kata sandi Anda ... Punyaku semua adalah string alfanumerik panjang acak (tidak ada karakter khusus) dan belum membutuhkan tanda kutip.
freiheit
2
Jika Anda perlu membuat /root/.my.cnf, ada baiknya secara eksplisit mengatur 0600 izin untuk memastikan tidak ada pengguna lain yang bisa melihatnya. Sebagian besar waktu pengguna normal tidak bisa turun ke / root, tetapi paranoia ekstra hampir selalu dijamin.
Dale Anderson
Hilang mv ./+%Y%m%d. $ Db.sql $ OUTPUT` antara mysqldump dan gzip
Siddharth
9
Jika Anda memiliki set kata sandi untuk MySQL, ikuti instruksi di Pulihkan kata sandi root MySQL , dan kemudian atur kata sandi Anda ke nol:
Untuk 5.7.6 dan yang lebih baru
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'
Untuk 5.7.5 dan sebelumnya
update user set password=PASSWORD("") where User='root';
* membutuhkan restart DB (lihat instruksi di tautan) agar ini berlaku.
dalam hal ini, jangan lupa untuk "membuka hak istimewa;"
Marco Ramos
@meyosef - tandai jawaban sebagai dijawab jika masalah Anda teratasi (klik tanda centang hijau di bawah jumlah suara).
Jneves
Saya pikir saya bisa menggunakan kata sandi kosong hanya untuk soket Unix dan bukan loopback, tetapi itu tidak mungkin. The unix_socketPlugin melakukan hal yang sedikit berbeda.
baskom
9
Ya, lebih sedikit kata sandi bisa menjadi hal yang baik. Tapi jangan hanya membuka database untuk semua orang.
via unix_socket:
grant usage on *.* to 'root'@'localhost' identified via unix_socket;
Ini memberi Anda akses mysql tanpa kata sandi untuk pengguna root yang masuk secara lokal. Btw. ini adalah default dalam rilis ubuntu / debian terbaru.
some_user@box: mysql -u root # denied
root@box: mysql # good
some_user@box: sudo mysql # good, if "some_user" has sudo rights.
Selamat datang di SF! Jawaban pertama yang bagus: jelas, ringkasan yang bagus, tautan untuk penjelajahan lebih lanjut, dan itu menambah sesuatu pada kumpulan jawaban yang ada. Saya senang menjadi upvote pertama Anda, dan saya harap Anda tetap tinggal untuk menulis lebih banyak jawaban seperti ini.
Saya cukup yakin bahwa secara default tidak ada kata sandi jika Anda adalah pengguna admin dan mengaksesnya secara lokal. Apakah Anda menemukan sesuatu yang berbeda dari itu?
Jawaban:
Secara pribadi, saya pikir lebih baik mengatur kata sandi dan menyimpannya di /root/.my.cnf:
Pertama:
Kemudian edit file .my.cnf root:
Pastikan untuk
chmod 0600 .my.cnf
.Sekarang Anda memiliki kata sandi tetapi Anda tidak lagi diminta untuk itu. Instalasi server MySQL default saya adalah kata sandi unik yang benar-benar acak untuk setiap server MySQL, disimpan dalam file .my.cnf seperti ini.
sumber
mv ./+%Y%m%d
. $ Db.sql $ OUTPUT` antara mysqldump dan gzipJika Anda memiliki set kata sandi untuk MySQL, ikuti instruksi di Pulihkan kata sandi root MySQL , dan kemudian atur kata sandi Anda ke nol:
Untuk 5.7.6 dan yang lebih baru
Untuk 5.7.5 dan sebelumnya
* membutuhkan restart DB (lihat instruksi di tautan) agar ini berlaku.
sumber
unix_socket
Plugin melakukan hal yang sedikit berbeda.Ya, lebih sedikit kata sandi bisa menjadi hal yang baik. Tapi jangan hanya membuka database untuk semua orang.
via unix_socket:
Ini memberi Anda akses mysql tanpa kata sandi untuk pengguna root yang masuk secara lokal. Btw. ini adalah default dalam rilis ubuntu / debian terbaru.
Slide penjelasan: https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips .
sumber
Anda juga dapat melakukan:
sumber
Saya cukup yakin bahwa secara default tidak ada kata sandi jika Anda adalah pengguna admin dan mengaksesnya secara lokal. Apakah Anda menemukan sesuatu yang berbeda dari itu?
Apakah ini berhasil?
sumber