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


184

Programlama yerine çoğunlukla güç sistemleri ile oynayan bir elektrik mühendisiyim. Son zamanlarda, Ubuntu'ya bir yazılım paketi yüklemek için bir kılavuz izliyorum. mySQLAslı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

Sonra yaparım

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

Sonunda aşağıdaki hata iletisiyle karşılaştım.

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

Nasıl düzeltebilirim ve devam edebilirim?


1
Bu kesinlikle programlama ile ilgili görünmüyor - benimle ilgili. SuperUser
Uli

Gelecek ziyaretçiler, burada açıklanan çeşitli nedenleri de kontrol etmeyi unutmayın: dev.mysql.com/doc/refman/8.0/en/problems-connecting.html
aderchox

Yanıtlar:


155

Not: For MySQL 5.7+ bakın @Lahiru cevabını bu soruya. Daha güncel bilgiler içerir.

MySQL <5.7 için:

Varsayılan kök parola boştur (yani boş dize) root. Böylece şu şekilde giriş yapabilirsiniz:

mysql -u root

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

mysqladmin -u root password [newpassword]

Çoğu durumda, DB ile de kapsamlı bir şekilde çalışmadan önce bireysel kullanıcı hesapları oluşturmalısınız.


5
@FarticlePilter -pBayrak, parolayı belirtir, bu nedenle kök parolanızı değiştirdikten sonra beğenirsiniz mysql -u root -p[newpassword]. < [filename]Sağladığınız kullanıcı kimlik üzerinden verilen yolda bir SQL dosyasını çalıştırmak için std girişini kullanıyor.
Mike Brant

27
Söylediğim gibi denedim mysqladmin -u root password abc1234ama anladım mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'. Çok teşekkür ederim!
Sibbs Kumar

2
Bu soruda @Kanagaroo, OP ilk kez MySQL kurduklarını ve daha sonra MySQL komut satırı istemcisi üzerinden erişmeye çalıştıklarını belirtiyor. Bana ilk kez erişim gibi geliyor.
Mike Brant

18
Aslında mysql topluluk sunucusu 5.7 için, yüklediğinizde varsayılan kök parolası rastgele oluşturulur. "Geçici şifre" hakkında konuşan bir satır için /var/log/mysqld.log sayfanızı kontrol edin. Saatlerce uğraşmaktan kurtarır.
Phil

1
@BraianMellor MySQL <5.7 sorununu çözer, çünkü Ubuntu'daki varsayılan (kurulum sonrası) kök parola boştur (parola yok); burada asıl soruda poster kök / kök kullanmaya çalışıyordu. Soru, kayıp parola, parola değiştirme vb. İle ilgili değildi. MySQL'in daha yeni sürümleri için, atıfta bulunduğum diğer cevap doğrudur, çünkü bir kullanıcı rastgele oluşturulan kök parolayı görmek için hata günlüklerine bakmalıdır.
Mike Brant

114

Bu sorunu bu ifadeyi yürüterek çözebildim

sudo dpkg-reconfigure mysql-server-5.5

Kök parolasını değiştirir.


10
İhtiyacım olan şey ... ama herkesin sunucu 5.5 sürümü yok. dpkg --get-selections | grep sqlsürümünüzü almak için kullanın
Balmipour

1
@Balmipour Rhel 6.x'te sql sürümünü kontrol etmek için eşdeğer komut ne olmalıdır
PrathamN

1
@Divz Rhel / centos'taki mysql sunucusunu yeniden yapılandırma komutu ne olmalı
PrathamN

@PrathamN Ben hiç kırmızı vardı, ama "kırmızı şapka kontrol paketleri sürümleri" için googling bana bunun gibi komutlar verir: sadece SQL paketleri filtre yum list installedeklemek | grep sqliçin ekleyin .
Balmipour

1
Mac OS X bu komutu çalıştırdığınızda, bu hatayı alıyorum: sudo: dpkg-reconfigure: command not found. Herhangi bir öneri?
mOna

90

Parolayı sıfırlamanız gerekiyor! macx (test edilmiş ve çalışıyor) ve ubuntu için adımlar

Kullanarak MySQL'i durdurun

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

(yukarıdaki satır tüm komuttur)

Bu, işlem bitinceye kadar devam eden bir komut olacaktır, bu yüzden başka bir kabuk / terminal penceresi açın, parola olmadan oturum açın:

$ mysql -u root

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

@ IberoMedia'nın yorumuna göre, MySQL'in daha yeni sürümleri için bu alan çağrılır authentication_string:

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

MySQL'i aşağıdakileri kullanarak başlatın:

sudo service mysql start

veya

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

yeni şifreniz 'şifre'dir.


3
Lütfen, bu şekilde DEĞİL! @ Divz'ın cevabı daha güvenlidir. --Skip-grant-tables hakkında doktordan alıntı: Bu, herkesin parola olmadan ve tüm ayrıcalıklarla bağlanmasını sağlar [...] Bu güvenli olmadığından, [...] uzak istemcilerin bağlanmasını önlemek için --skip-grant-tablesbirlikte kullanın --skip-networking. oh, ve bu da benim için çalışmadı. Bu yüzden buraya geldim: p
Balmipour

1
Eğer bu şekilde gidersen , evet. Benim için işe yaramadı ve @ Divz'ın cevabını takip etmek benim için çok daha kolay görünüyor --Herhalde önereceğim şey dpkg --get-selections | grep mysql-server-tam MySQL sürümünüzü almak için kullanıyor , sonra sudo dpkg-reconfigure mysql-server-5.x (5'i değiştirin) .x sunucu sürümünüzle, btw). @ Divz'ın cevabını bu hassasiyetle yorumladım, ancak birkaç "teşekkürler" yorumu tarafından maskeleniyor.
Balmipour

4
kullanıcı ayarını güncelle authentication_string = şifre ('1111') burada kullanıcı = 'kök';
Dejell

2
Bu gerçekten işe yaradı ... diğer çözümler hala bana aynı hatayı verdi.
eddy147

2
MySQL 5.7.6 sürümünden
IberoMedia

56

Bu eski bir soru biliyorum ama bunun birine yardım edebileceğini hissediyorum. Geçenlerde aynı sorunla karşı karşıya kaldım ama benim durumumda, şifremi oldukça iyi hatırlıyorum ama aynı hatayı bana vermeye devam etti. Çok fazla çözüm denedim ama yine de hiçbiri yardımcı olmadı

mysql -u root -p 

bundan sonra böyle bir geçiş kelimesi ister

Enter password: 

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


3
Bu, günlerce yapılan araştırmalardan sonra yardımcı oldu.
girish_vr

@Girish_vr
XY-JOE

Benim için çalıştı! My mysql-server versiyonum: Server versiyonu: 8.0.13 MySQL Community Server - GPL
kaspiotr

Bu, MySQL tarafında inanılmaz derecede aptal olan, hala inanamıyorum yardımcı oldu.
wscourge

39

Sunucunun ilk açılışında, sunucunun veri dizininin boş olduğu düşünüldüğünde aşağıdakiler gerçekleşir:

  • Sunucu başlatıldı.
  • Veri dizininde SSL sertifikası ve anahtar dosyaları oluşturulur.
  • Validate_password eklentisi kurulur ve etkinleştirilir.
  • Süper kullanıcı hesabı 'root' @ 'localhost' oluşturulur. Süper kullanıcının şifresi hata günlüğü dosyasında ayarlanır ve saklanır.

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

shell> sudo grep 'temporary password' /var/log/mysqld.log

Oluşturulan geçici parola ile giriş yaparak kök parolayı en kısa sürede değiştirin ve süper kullanıcı hesabı için özel bir parola ayarlayın:

shell> mysql -u root -p #Login to root user with some password

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

16
Bu umut vericiydi, ama benim için işe yaramıyor. Ben çalıştırdığınızda sudo grep 'temporary password' /var/log/mysqld.logalıyorum/var/log/mysqld.log: No such file or directory
Eric Hepperle - CodeSlayer2010

5
Deneyin sudo grep 'temporary password' /var/log/mysql/error.log. @Lahiru çözümü benim için çalıştı.
artemisian

17
Sudo grep 'geçici şifre' /var/log/mysql/error.log denedim ama hiçbir şey döndürmüyor.
Öğrenci

2
Deneyin shell> sudo grep 'password' /var/log/mysql/error.log. Benim için çalıştı, ama ben olsun: root @ localhost boş bir şifre ile oluşturulur! Lütfen --initialize-güvensizlik seçeneğini kapatmayı düşünün. My mysql sürüm: x86_64 (MySQL Topluluk Sunucusu - GPL) Linux için Ver 8.0.13
kaspiotr 18:18

1
@EnginYilmaz neden mysql bile erişilebilir değil mysql komutunu öneriyorsunuz?
R-obert

34

Sorun hala devam ediyorsa, geçişi değiştirmeye zorlayın

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

Yeni MySQL kök kullanıcı şifresini ayarlayın

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

MySQL Sunucusunu Durdurun:

/etc/init.d/mysql stop

MySQL sunucusunu başlatın ve test edin:

mysql -u root -p

1
Teşekkür ederim. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)sunucumu da rahatsız ediyordu. 'mysqld_safe', 1. Adımdan SONRA 'killall mysqld' yapana kadar da başarısız oldu.
Marcos

Lütfen, bu şekilde DEĞİL! @ Divz'ın cevabı daha güvenlidir. --Skip-grant-tables hakkında doktordan alıntı yapma: Bu, herkesin parola olmadan ve tüm ayrıcalıklarla bağlanmasını sağlar [...] Bu güvenli olmadığından, [...] uzak istemcilerin bağlanmasını önlemek için --skip-grant-tablesbirlikte kullanın --skip-networking. oh, ve bu da benim için çalışmadı. Bu yüzden buraya geldim: p
Balmipour

2
Bana veriyor: ERROR 1054 (42S22): 'Alan listesinde' bilinmeyen sütun 'şifre'
MD. Mohiuddin Ahmed

@Anshu tarafından cevap kontrol Bu daha güvenli bir yoldur
Mugoma J. Okomba

1
@ MD.MohiuddinAhmed mysql-server'ın daha yeni bir sürümünü kullanıyor olmalısınız. Bu yanıta bakın: stackoverflow.com/a/31122246/6242649
Udayraj Deshmukh

32

Parolanız eksik olduğunda olur.

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

  1. MySQL Sunucusunu Durdurun (Linux'ta):

    sudo systemctl stop mysql
  2. Hibe 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 sonundaki ve işareti bu işlemi
    arka planda çalıştırır, böylece terminalinizi kullanmaya devam edebilir ve #mysql -u root komutunu çalıştırabilirsiniz, parola istemez.

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

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

  3. MySQL servis dizinini oluşturun.

    sudo mkdir /var/run/mysqld

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

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

  5. Çalıştır mysql -u root Eğer şifre girmeden mysql konsol alacak.

    Bu komutları çalıştırın

    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ışmazsa şunu kullanın:

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

Şimdi çık

  1. Manuel olarak başlatılan örneği durdurmak için

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

    sudo systemctl start mysql

2
Benim durumumda, Adım 6'yı değiştirmek zorundayımsudo kill `sudo cat /var/run/mysqld/mysqld.pid`
kolunar

1
Benim için çalışan bu. 5. adımda 1. KULLANICI 2'yi kullanın. Parolayı değiştirmek için -> güncelleme kullanıcı ayarını kullanın authentication_string = ŞİFRE ("şifre") burada Kullanıcı = 'kök';
Bikram

1
Bu, bulabildiğim en iyi çözüm. MBP '15 modelinde macOS Mojave'de "5.7.26 MySQL Topluluk Sunucusu (GPL)" kullanılması. Sistem Tercihi Mysql durdurmak zorunda kaldı ve sonra adım 2 ve adım 5 izledi. Ve sonra ps -ef kullanarak PID bakarak MySQL işlemini öldürmek zorunda kaldı. grep mysql.
cspider

12

Bu çok sinir bozucu sorunla karşılaştım ve işe yaramayan birçok cevap buldum. Karşılaştığım en iyi çözüm, mysql'yi tamamen kaldırmak ve yeniden yüklemekti. Yeniden kurulumda bir root şifresi belirlediniz ve bu sorun çözüldü.


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

Bunun için hiçbir kredi almak bu yüzden başka bir yerde bu kodu bulundu. Ama işe yarıyor. Kaldırdıktan sonra mysql yüklemek için dijital okyanus üzerinde iyi bir öğretici olduğunu düşünüyorum. Bunun için özlemimi kontrol et.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096


12

Ubuntu-16.04 kullanıyorum: yüklü mysql - 5.7. Aynı sorun vardı: Kök kullanıcı için giriş reddedildi.

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

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

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

-P olmadan parola sormanızı istemez. Bir kez giriş yaptıktan sonra, aşağıdaki adımları uygulayarak ş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ökten çıkın ve yukarıda verdiğiniz giriş yapın.

mysql -u <your_new_username> -p

Nedense hala sadece mysql yazmak çalışmıyor. TÜMÜNDE. Kullanmayı alışkanlık haline getirmeyi öneriyorum mysql -u <name> -p.



8

Diğer yanıtların hiçbiri sizin için uygun değilse ve bu hatayı aldıysanız:

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

Şifrenizi 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 -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;

#kill mysqld_safe process
sudo service mysql restart

#Now you can use your new password to login to your Server
mysql -u root -p

#take note for remote access you should create a remote user and then grant all privileges to that remote user

Bu Ubuntu 18.04 LTS'deki mysql 5.7 için de doğru cevaptır. Teşekkürler
Dhiraj

Tüm Uzak Adresler için: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf -> bağlama adresi = 0.0.0.0
Mehdi

7

Ben MySQL yüklü root ( $SUDObu aynı sayı) ve got
ben BT sabit aşağıda görebilirsiniz

  1. $ sudo cat /etc/mysql/debian.cnf

Bu, ayrıntıları şu şekilde gösterecektir:

# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

Biz şifreyi görebilirsiniz Üstü sadece biz gidiyoruz kullanmak(GUx0RblkD3sPhHL5) prompt- o

  1. mysql -u debian-sys-maint -p Enter password:
    şimdi şifre girin ( GUx0RblkD3sPhHL5 ).

  2. Şimdi exitMySQL'den ve tekrar giriş yapın-

    mysql -u root -p Enter password:
    Şimdi yeni bir şifre girin. Hepsi bu, daha fazla kullanım için yeni şifremiz var.

Benim için çalıştı, umarım sana da yardım eder!


6

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

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');

1
Verileri: ERROR 1131 (42000): Anonim kullanıcı olarak MySQL kullanıyorsunuz ve anonim kullanıcıların parola değiştirmesine izin verilmiyor
MD. Mohiuddin Ahmed

1
Bu normal. Kullanıcınız anonim. > mysql -u {your_username}
Yürütmeniz

3

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 parola belirler. Parolayı kaydetmelisiniz. Parola kurtarılamaz.

Talimatı izleyin

  1. Adresine git cd /usr/local/mysql/bin/
  2. Geçici şifreyi girin ("tsO07JF1 => 3" gibi bir şeye benzeyecektir)
  3. Mysql> istemi almalısınız.
  4. Çalıştır, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');Eğer parolanızı ayarlamak istiyorsanız: "root" komut,SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. Çalıştırmak ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. Çalıştırmak exit
  7. Çalıştırmak ./mysql -u root -p
  8. Şifrenizi yazınız. Benim durumumda "kök" (alıntı olmadan) yazardım
  9. Bu kadar.

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

Şimdi her yerden yazabilirsiniz ./mysql -u root -p şifreyi yazıp ve mysql> istemini alırsınız.

Umarım yardımcı olur.


3

Cevap kulağa aptalca gelebilir, ancak saatlerce harcadıktan sonra, işte böyle buldum

mysql -u root -p

Hata mesajını aldım

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

Doğru şifreyi yazmama rağmen (mysql'i ilk yüklediğinizde aldığınız geçici şifre)

Şifre istemi yanıp sönerken şifreyi yazarken doğru anladım


2

Sorun hala devam ediyorsa, geçişi değiştirmeye zorlayın

MySQL Sunucusunu Durdurun (Linux'ta):

/etc/init.d/mysql stop

MySQL Sunucusunu Durdurma (Mac OS X'te):

mysql.server stop

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

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

Yeni MySQL kök kullanıcı şifresini ayarlayın

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

MySQL Sunucusunu Durdurun (Linux'ta):

/etc/init.d/mysql stop

MySQL Sunucusunu Durdurma (Mac OS X'te):

mysql.server stop

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

mysql -u root -p

1

BY varsayılan parolası null olur, bu nedenle aşağıdaki adımları uygulayarak parolayı değiştirmeniz gerekir.

mysql'e bağlan

kök # mysql

MySQL kullanın

mysql> kullanıcı parolasını güncelle = PASSWORD ('root') burada User = 'root'; Son olarak, ayrıcalıkları yeniden yükleyin:

mysql> floş ayrıcalıkları; mysql> çık



1

Ubuntu 16.04'te (MySQL sürüm 5.7.13) aşağıdaki adımları uygulayarak sorunu çözebildim:

  1. B.5.3.2.2 Kök Parolasını Sıfırlama: Unix ve Unix Benzeri Sistemler MySQL 5.7 başvuru kılavuzundaki talimatları izleyin.

  2. #Sudo mysqld_safe --init-file = / home / me / mysql-init'i denediğimde 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' uygulaması başladı. 2016-08-10T11: 41: 20.422070Z 0 [HATA] / usr / sbin / mysqld: Dosya '/ home / me / mysql / mysql-init' bulunamadı (Hata kodu: 13 - İzin reddedildi) 2016-08-10T11: 41: 20.422096Z 0 [HATA] İptal ediliyor

Mysql-init dosya izni sorun değildi, bariz izni düzenlemek gerekiyor

  1. #Sudo vi /etc/apparmor.d/usr.sbin.mysqld 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 uygulamasını tekrar başlatın ve yukarıdaki 2. adımı deneyin. /Var/log/mysql/error.log dosyasının hata olmadığından ve mysqld'in başarıyla başlatıldığından emin olun.

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

    Şifre girin:

Mysql-init içinde belirttiğiniz şifreyi girin. Şimdi root olarak giriş yapabilmelisiniz.

  1. #Sudo mysqladmin -u root -p shutdown tarafından mysqld_safe kapatma

  2. #Sudo systemctl tarafından mysqld normal şekilde başla mysql başlat


1

Bir Docker görüntüsünün parçası olarak MySQL'iniz varsa (bağlantı noktası 6606'da) ve bağlantı noktasını belirten bir Ubuntu yüklemesi (3306 bağlantı noktasında) yeterli değilse:

mysql -u root -p -P 6606

atacak:

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

varsayılan olarak localhost'a bağlanmaya çalışırken, yerel IP'nizi belirtmek sorunu çözer:

mysql -u root -p -P 6606 -h 127.0.0.1

0

Son MySQL sürümlerinde hiçbir orada passwordiçinde mysql.usermasaya.

Yani yürütmeniz gerekiyor ALTER USER. Bu tek satırlık komutu dosyaya koyun.

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

Ve init dosyası (root veya mysql kullanıcısı) olarak yürütün

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

MySQL sunucusunun başlatılması için durdurulması gerekir mysqld_safe.

Ayrıca, bu init dosyasını yüklemek için görünen izinlerle ilgili bir sorun olabilir. Buradan daha fazla bilgi https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql


0

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


0

Mac'te, yükleme sırasında verilen ilk parolayla oturum açmada bir sorununuz varsa, belki sadece mysql işlemini öldürüp sonra deneyebilirsiniz.

Yani: 1- mysql PID'sini 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] 

Ardından bu komutu kullanarak ilk parola ile giriş yapabilirsiniz:

mysql -uroot -p

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


0

Benzer bir sorunum vardı:

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

Ama benim durumumda, neden gerçekten aptalcaydı. Komutu bir Word belgesinden kopyaladım ve sorun, tire işaretinin 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şılaşılması durumunda, öneri kopyalama ve yapıştırma yerine komutu yazmaya çalışmaktır.


0

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

Yukarıdaki Sameer Choudhary tarafından verilen talimatları takip etti ve bazı ayarlamalar ile root şifresini değiştirebildim ve localhost'tan root erişimini etkinleştirebildim.

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


0

Ubuntu 18.04 LTS ve Mysql Server sürüm 5.7.27-0ubuntu0.18.04.1 (Ubuntu) ile bu sorunu yaşadım.

Benim çözümüm (aynı koşuyordu kökü ile sudo -i)

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES ;
EOSQL

mysqladmin -u root password new_pw

0

Aynı problemle de karşılaştım, yaptığım şey

1) cmd'nizi açın

2) C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin> öğesine gidin (burada MySQL Server 8.0, kurduğunuz sunucuya bağlı olarak farklı olabilir)

3) Sonra mysql -u root -p komutunu verin

4) Parolayı soracağım ... bazen yükleme sırasında girdiğiniz parola boş olarak değiştiğinden enter tuşuna basmanız yeterlidir.

şimdi veritabanına kolayca erişebilirsiniz

Bu çözüm benim için Windows platformunda çalıştı


0

Üst yanıt (w / mysqladmin) mac 10.15 üzerinde çalışırken, ubuntu üzerinde çalışmadı. Sonra mysql için güvenli başlangıç ​​da dahil olmak üzere diğer seçeneklerin çoğunu çalıştı, hiçbiri çalıştı. Böylece yeni bir yanıt ekliyoruz.

En azından versiyon için 5.7.28-0ubuntu0.18.04.4cevaplar eksikti IDENTIFIED WITH mysql_native_password. 5.7.28 mevcut LTS'de varsayılan değerdir ve bu nedenle çoğu yeni sistem için varsayılan değer olmalıdır (20.04 LTS çıkana kadar).

Bulunan: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server ve şimdi uygulandı

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

hangi işe yarıyor.


0

Karşılaştığım hata

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

bağlantı noktası üzerinde çalışırken bir sorun vardı.

Varsayılan olarak mysql çalışıyor port 3306.

Bunu çalıştırarak kontrol edebilirsiniz.

  • 32 bit sistemde:

    sudo /opt/lampp/manager-linux.run

  • 64 bit sistemde:

    sudo /opt/lampp/manager-linux-x64.run

ve tıklayın configuredüğmesinin

xampp kontrol paneli

Benim durumumda, bağlantı noktası 3307'de çalışıyordu ve kullandığım komut

mysql -u root -p -P 3307 -h 127.0.0.1

0

Benim durumumda bir kapsayıcı komutu. Bu durumda sadece ilk kelime yorumlandı. Koşmadığınızdan emin olun:

mysql

aksine:

mysql -uroot -ppassword schemaname

belki alıntı yapmayı deneyin:

'mysql -uroot -ppassword schemaname'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.