it-swarm-tr.com

HATA 1045 (28000): 'root' @ 'localhost' kullanıcısı için erişim reddedildi (şifre kullanarak: YES)

Programlama yerine ağırlıklı olarak güç sistemi ile uğraşan bir elektrik mühendisiyim. Son zamanlarda, Ubuntu'da bir yazılım paketi kurmak için bir kılavuz izliyordum. Aslında, mySQL hakkında hiçbir bilgim yok. Ubuntu'mda aşağıdaki kurulumları yaptım.

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

O zaman yaparım

[email protected]:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

Aşağıdaki hata mesajı ile sona erdi.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Nasıl düzeltebilir ve devam edebilirim?

129
Sibbs Gambling

Not: MySQL 5.7 + lütfen bakınız @Lahiru'dan bu soruya cevap. Bu daha güncel bilgiler içerir.

MySQL için <5.7:

Varsayılan kök şifresi boştur (yani boş dize) root değildir. Yani sadece giriş yapabilirsiniz:

mysql -u root

Kurulumdan sonra root şifrenizi açıkça değiştirmeniz gerekir.

mysqladmin -u root password [newpassword]

Çoğu durumda, DB ile de çalışmadan önce bireysel kullanıcı hesaplarını ayarlamanız gerekir.

133
Mike Brant

Bu sorunu çalıştırarak bu sorunu çözebildim.

Sudo dpkg-reconfigure mysql-server-5.5

Bu root şifresini değiştirecek.

111
Divz

Şifreyi sıfırlaman gerekiyor! mac osx (test edilmiş ve çalışıyor) ve ubuntu için adımlar

MySQL'i kullanmayı durdur

Sudo service mysql stop

veya

$ Sudo /usr/local/mysql/support-files/mysql.server stop

Güvenli modda başlatın:

$ Sudo mysqld_safe --skip-grant-tables --skip-networking

(satırın tamamı komutun tamamı)

Bu işlem bitene kadar devam eden bir komut olacaktır, bu yüzden başka bir Shell/terminal penceresi açın, şifre olmadan giriş yapın:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

@ IberoMedia'nın yorumuna göre, MySQL'in yeni sürümleri için alana authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

MySQL'i kullanarak şunları başlatın:

Sudo service mysql start

veya

Sudo /usr/local/mysql/support-files/mysql.server start

yeni şifreniz 'şifre'.

57
tk_

sorun devam ederse, geçişi değiştirmeye zorlamaya çalışın

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

Yeni MySQL kök kullanıcı şifresini ayarla

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQL Sunucusunu Durdur:

/etc/init.d/mysql stop

MySQL sunucusunu başlat ve test et:

mysql -u root -p
28
Yasin Hassanien

Sunucunun ilk başlangıcında, sunucunun veri dizininin boş olması koşuluyla aşağıdakiler gerçekleşir:

  • Sunucu başlatıldı.
  • SSL sertifikası ve anahtar dosyaları veri dizininde oluşturulur.
  • Validate_password eklentisi yüklü ve etkindir.
  • Süper kullanıcı hesabı 'root' @ 'localhost' oluşturuldu. Süper kullanıcı için parola ayarlanmış ve hata günlük dosyasında saklanmıştır. 

Ortaya çıkarmak için aşağıdaki komutu kullanın:

Shell> Sudo grep 'temporary password' /var/log/mysqld.log

Oluşturulan geçici şifre ile giriş yaparak ve süper kullanıcı hesabı için özel bir şifre belirleyerek root şifresini en kısa zamanda değiştirin

Shell> mysql -uroot -p 

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 
19
Lahiru

Bunu eski bir soru biliyorum ama bunun birine yardımcı olabileceğini düşünüyorum. Son zamanlarda aynı sorunla karşılaştım ancak benim durumumda şifremi oldukça iyi hatırlıyorum ama aynı hatayı vermeye devam ediyordum. Çok fazla çözüm denedim ama yine de hiçbiri yardımcı olmadı. 

mysql -u root -p 

bundan sonra böyle bir geçiş sözünü ister.

Enter password: 

ve sonra kullandığım şifreyi yazdım. Bu kadar

16
XY-JOE

Şifreniz eksik olduğunda olur.

Unuttuğunuzda şifreyi değiştirme adımları:

  1. MySQL Sunucusunu Durdur (Linux'ta):

    Sudo systemctl stop mysql
    
  2. Veri sağlama tablolarını yüklemeden veya ağ oluşturmayı etkinleştirmeden veritabanını başlatın:

    Sudo mysqld_safe --skip-grant-tables --skip-networking &
    

    Bu komutun sonunda ve işareti, bu işlemi ekranda çalıştırır.
    background böylece terminalinizi kullanmaya devam edebilir ve #mysql -u root komutunu çalıştırabilirsiniz, şifre sormaz.

    Aşağıdaki gibi bir hata alırsanız:

    2018-02-12T08: 57: 39.826071Z mysqld_safe UNIX için '/ var/run/mysqld' Dizini
    soket dosyası mevcut değil . mysql -u root ERROR 2002 (HY000): Yerel MySQL sunucusuna soket üzerinden bağlanılamıyor
    '/ var/run/mysqld/mysqld.sock' (2) [1] + Çıkış 1 

  3. MySQL servis dizinini hazırlayın.

    Sudo mkdir /var/run/mysqld
    

    MySQL kullanıcısına servis dizinine yazma izni verin.

    Sudo chown mysql: /var/run/mysqld
    
  4. MySQL arka planda çalıştırmak için 2. adımda aynı komutu çalıştırın.

  5. Mysql -u root komutunu çalıştırıp parola girmeden mysql konsolunu alacaksınız. 

    Bu komutları çalıştır

    FLUSH PRIVILEGES;
    

    MySQL 5.7.6 ve daha yeni sürümler için

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    MySQL 5.7.5 ve üstü için

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    

    ALTER USER komutu çalışmıyorsa:

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')     WHERE User = 'root' AND Host = 'localhost';
    

Şimdi çık

  1. Durdurmak örneği elle başlatıldı

    Sudo kill `cat /var/run/mysqld/mysqld.pid`
    
  2. MySQL'i yeniden başlat

    Sudo systemctl start mysql
    
15
Sameer Choudhary

Ubuntu-16.04 kullanıyorum: yüklenen mysql - 5.7 . Aynı sorunu yaşadım: Giriş kök kullanıcı için reddedildi.

Aşağıdaki adımları denedim:

  1. dpkg --get-selections | grep mysql (mysql sürümünü edinmek için).

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

-P olmadan parola sormanız istenmez. İçeri girdikten sonra, aşağıdaki adımları izleyerek şifreli bir kullanıcı oluşturabilirsiniz:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

Kökünden çık ve yukarıda verdiğin kişiden giriş yap.

mysql -u <your_new_username> -p

Bazı nedenlerden dolayı hala sadece mysql yazmak işe yaramaz. AT ALL. mysql -u <name> -p 'u kullanmayı alışkanlık haline getirmenizi öneririm.

10
Nikhil Rushmith

Bu çok sinir bozucu problemle karşılaştım ve işe yaramayan birçok cevap buldum. Karşılaştığım en iyi çözüm, mysql'i tamamen kaldırmak ve yeniden kurmaktı. Yeniden kurulduğunda bir root şifresi belirlediniz ve bu problemi çözdü.


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

Bu kodu başka bir yerde buldum, bu yüzden kredi almam. Ama işe yarıyor . Kaldırdıktan sonra mysql'i kurmak için Digital Ocean'in iyi bir öğretici olduğunu düşünüyorum. Bunun için Gist'imi kontrol et .
https://Gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096

6
JamesD

Lütfen resmi belgeleri okuyun: Mysql: Kök Parolasının Sıfırlanması

Terminale erişiminiz varsa: 

MySQL 5.7.6 ve üstü:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 ve öncesi:

$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
5
d.danailov

Mac OSX'te mysql-5.7.12-osx10.11-x86_64.dmg kullanıyorum

Yükleme işlemi, kök kullanıcı için otomatik olarak geçici bir şifre ayarlar. Şifreyi kaydetmelisin. Şifre kurtarılamaz. 

Talimatı izleyin

  1. cd /usr/local/mysql/bin/ adresine git
  2. Geçici şifreyi girin ("tsO07JF1 => 3" gibi bir şeye benzer)
  3. MySQL> İstemi almalısınız. 
  4. Çalıştır, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}'); Parolanızı ayarlamak istiyorsanız: "root" sonra komut, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); olacaktır.
  5. ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; komutunu çalıştır
  6. exit komutunu çalıştır
  7. ./mysql -u root -p komutunu çalıştır
  8. Şifrenizi yazınız. Benim durumumda "root" (alıntı yapılmadan) yazardım
  9. Bu kadar. 

Kolaylık sağlamak için PATH'inize "/usr/local/mysql/bin" eklemelisiniz

Artık her yerden ./mysql -u root -p yazıp ardından parolayı yazdığınızda mysql> İstemi alacaksınız. 

Umarım yardımcı olur. 

3
tausiq

Cevap aptalca gelebilir, ancak saatlerce harcadıktan sonra, çalışmam nasıl oldu

mysql -u root -p

Hata mesajını aldım

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Doğru şifreyi girmeme rağmen (mysql'i ilk kurduğunuzda alacağınız geçici şifre)

Parola İstemcisi yanıp sönerken parolayı girdiğimde doğru anladım

3
Amit Kumar

sorun devam ederse, geçişi değiştirmeye zorlamaya çalışın

MySQL Sunucusunu Durdur (Linux'ta):

/etc/init.d/mysql stop

MySQL Sunucusunu Durdur (Mac OS X'te):

mysql.server stop

Mysqld_safe arka planını --skip-grant-tables ile başlat

mysqld_safe --skip-grant-tables &
mysql -u root

Yeni MySQL kök kullanıcı şifresini ayarla

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQL Sunucusunu Durdur (Linux'ta):

/etc/init.d/mysql stop

MySQL Sunucusunu Durdur (Mac OS X'te):

mysql.server stop

MySQL server servisini başlatın ve root ile giriş yapmak için test edin:

mysql -u root -p
2
Max Yao

sadece terminale gir

mysql -u kök -p. size parola soracağından daha

1
Vahap Gençdal

Sadece bir satır ve bu benim sorunumu çözdü.

Sudo dpkg-reconfigure mysql-server-5.5
1
Satyendra Sahani

Ubuntu 16.04'te (MySQL sürüm 5.7.13) Sorunu aşağıdaki adımlarla çözmeyi başardım:

  1. Bölüm B.5.3.2.2'deki Kök Parolasını Sıfırlama: Unix ve Unix-Like Systems MySQL 5.7 referans el kitabı

  2. Denedim zaman #Sudo mysqld_safe --init-dosya =/home/me/mysql-init & başarısız oldu. Hata /var/log/mysql/error.log

    2016-08-10T11: 41: 20.421946Z 0 [Not] init_file '/ home/me/mysql/mysql-init' işlemine başlandı . 2016-08-10T11: 41: 20.422070Z 0 [HATA]/usr/sbin/mysqld: '/ home/me/mysql/mysql-init' dosyası bulunamadı (Hata: 13 - İzin reddedildi) 2016-08-10T11: 41: 20.422096Z 0 [ERROR] İptal Edildi

Mysql-init'in dosya izni problem değildi, apparmor iznini düzenlemeniz gerekiyor

  1. #Sudo vi /etc/apparmor.d/usr.sbin.mysqld tarafından düzenleyin 

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
    
  2. #Sudo /etc/init.d/apparmor yeniden yükle

  3. Mysqld_safe'yi tekrar başlatın ve yukarıdaki 2. adımı deneyin. Check /var/log/mysql/error.log Hata olmadığından emin olun ve mysqld başarıyla başlatıldı

  4. #Mysql -u root -p komutunu çalıştırın

    Şifre girin:

Mysql-init ile belirttiğiniz şifreyi girin. Şimdi root olarak giriş yapabilmelisin.

  1. Kapatma mysqld_safe #Sudo mysqladmin -u root -p kapatma

  2. #Sudo systemctl ile mysqld normal yoldan başlatmak mysql başlatmak

1
codegen

Diğer cevaplarda söylenen komutları giriyorsanız bu işe yarayacak, ancak yine de bu hataları alıyorsunuz:

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

Parolanızı sıfırlayana kadar aşağıdaki komutları adım adım izleyin:

# 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 -uroot 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 -uroot -p
1
Mehdi

Henüz şifre ayarlamadıysanız, mysql -uroot komutunu çalıştırın, bu benim için çalışıyor.

0
ahbon

Benzer bir sorun vardı:

HATA 1045 (28000): 'root' @ 'localhost' kullanıcısı için erişim reddedildi (parola kullanarak: NO)

Fakat benim durumumda, neden gerçekten aptalcaydı. Komutu bir Word belgesinden kopyaladım ve sorun, bir tire'nin ASCII 2D koduna değil Unicode E28093'e sahip olmasıydı.

Yanlış yol:

mysql -u root –pxxxx

Doğru yol:

mysql -u root -pxxxx

Her ikisi de aynı görünüyor ancak aynı değil (deneyin, şifrenizi değiştirerek kopyalayıp yapıştırın).

Bu tür bir hatayla karşı karşıya kalırken, tavsiye kopyalayıp yapıştırmak yerine komutu yazmaya çalışmaktır.

0
cesargastonec

Mac'te, kurulumda size verilen ilk şifre ile giriş yapmakta sorun yaşıyorsanız, belki sadece mysql işlemini sonlandırabilir ve daha sonra deneyebilirsiniz. 

Öyleyse: 1- mysql PID değerini bulmak için aşağıdaki komutu çalıştırın:

ps -aef | grep mysql | grep -v grep

2- süreci öldürmek:

kill -15 [process id] 

Daha sonra bu komutu kullanarak ilk şifre ile giriş yapabilirsiniz:

mysql -uroot -p

Sizden şifrenizi girmenizi ister. Sadece ilk şifreyi girin.

0
Maryam Zakani

Varsayılan şifre ile boş olacaktır, bu nedenle aşağıdaki adımları uygulayarak şifreyi değiştirmeniz gerekir.

mysql'e bağlan

kök # mysql

Mysql kullan

mysql> güncelleme kullanıcı set şifresi = ŞİFRE ('root') burada User = 'root';

mysql> kızarma ayrıcalıkları; mysql> çıkın

0
Rizwan Basheer

@Lahiru tarafından doğru cevap ile denedim, ancak macOS Mojave üzerinde MySQL sunucusu sürüm 8.0.16 (Topluluk) ile çalışmadı.

Yukarıdaki Sameer Choudhary'un talimatlarını takip ettim ve bazı ayarlamalar yaparak root şifresini değiştirebildim ve localhost'tan root erişimine izin verdim.

Güncelleme: Eğer homebrew kullanarak Mac OS'ta yüklüyorsanız, bunların hepsi gerekli değildir: "brew install mysql"

0
cspider

Son MySQL sürümlerinde, mysql.user tablosunda password yok.

Bu yüzden ALTER USER komutunu çalıştırmanız gerekiyor. Bu bir satır komutunu dosyaya yerleştirin. 

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Ve init dosyası olarak çalıştırın (root ya da mysql kullanıcısı olarak)

mysqld_safe --init-file=/home/me/mysql-init &

MySQL sunucusunun mysqld_safe uygulamasını başlatmak için durdurulması gerekir. 

Ayrıca, bu init dosyasını yüklemek için apparmor izinlerinde bir sorun olabilir. Burada daha fazla oku https://blogs.Oracle.com/jsmyth/entry/apparmor_and_mysql

0