MySQL için şifremi nasıl silebilirim? Veritabanına bağlanmak için bir parola istemiyorum. Sunucum Ubuntu çalıştırıyor.
MySQL için şifremi nasıl silebilirim? Veritabanına bağlanmak için bir parola istemiyorum. Sunucum Ubuntu çalıştırıyor.
Yanıtlar:
Şahsen, bunun yerine bir şifre ayarlamak ve /root/.my.cnf içine kaydetmek daha iyi olduğunu düşünüyorum:
İlk:
mysqladmin -u root password 'asdfghjkl'
Ardından root'un .my.cnf dosyasını düzenleyin:
[client]
password = asdfghjkl
Emin olun chmod 0600 .my.cnf
.
Şimdi bir şifreniz var, ancak artık sizden istenmiyor. Varsayılan MySQL sunucu kurulumum, bu gibi .my.cnf dosyasına kaydedilen her MySQL sunucusu için tamamen rastgele benzersiz bir şifredir.
mv ./+%Y%m%d
Mysqldump ve gzip arasında eksik . $ Db.sql $ OUTPUT`
Evet, daha az parola iyi bir şey olabilir. Ancak veritabanını herkes için açmayın.
unix_socket aracılığıyla:
grant usage on *.* to 'root'@'localhost' identified via unix_socket;
Bu, yerel olarak oturum açmış bir kök kullanıcı için şifresiz mysql erişim sağlar. Btw. bu son ubuntu / debian sürümlerinde varsayılan değerdir.
some_user@box: mysql -u root # denied
root@box: mysql # good
some_user@box: sudo mysql # good, if "some_user" has sudo rights.
Açıklayıcı slaytlar: https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips .
MySQL için ayarlanmış bir parolanız varsa MySQL kök Parolasını Kurtar bölümündeki talimatları izleyin ve ardından parolanızı null olarak ayarlayın:
5.7.6 ve üstü için
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'
5.7.5 ve öncesi için
update user set password=PASSWORD("") where User='root';
* bunun etkili olması için DB'nin yeniden başlatılması gerekir (bağlantıdaki talimatları inceleyin)
sudo service mysql restart
unix_socket
Eklenti biraz daha farklı bir şeyi yapar.
IDENTIFIED VIA unix_socket
İfadesi yalnızca mariadb içindir.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket;
MySQL için de aynı şey başarılır IDENTIFIED WITH auth_socket
.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED WITH auth_socket;
Sadece iki kelimeden oluşan bir fark, ama gerçekten aynı değiller.