MySQL Access 'root' @ 'localhost' kullanıcısı için reddedildi


24

Sunucumda MySQL'e her giriş yapmaya çalıştığımda hata alıyorum:

Erişim 'root' @ 'localhost' kullanıcısı için reddedildi (şifre ile: NO)

denediğimde mysqladmin -u root -p passwordanlıyorum

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

MySQL'e 12.04 Ubuntu sunucumda nasıl erişebilirim?


1
Parolanızı komut satırına parametre olarak yazmaktan kaçının, diğer kullanıcılar işlem listelerinde bulabilir. Doğrudan programa yazmak veya bir anahtar kullanmak çok daha iyi
— Amias

Sözdizimi -p passwordyanlış, olması gerekiyor -ppasswordama önerilmez. Daha fazla bilgi: stackoverflow.com/questions/5131931/…
— Melebius

Bu hatanın olası nedenleri ve bu hatayı düzeltmek için geçici çözümler için bu sayfayı kontrol edin. rathishkumar.in/2017/04/… . Size yardımcı olabilir.
— rathishDBA

Yanıtlar:


12

N localhost kullanıyorsanız, aşağıdaki komutu sadece terminalde yazın:

mysql -u root -p

Harici bir sunucu kullanıyorsanız, ana bilgisayar IP'sini (xxx.xxx.xxx.xxx) de girin:

mysql -hxxx.xxx.xxx.xxx -uroot -p

Parolanız istenecek, girilecek ve MySQL isteminize erişebileceksiniz.

Bu cevaba MySQL şifrenizi nasıl sıfırlayacağınıza da bakabilirsiniz .


girdim ancak hala bir parolayı nasıl değiştireceğimi veya
— seçeceğimi

Bağlandığım cevabın 5.xsonunda, kullandığınız MySQL sunucusunun versiyonunu değiştirmelisiniz . 5.5 kullanıyorum bu yüzden benim sudo dpkg-reconfigure mysql-server-5.5
— emrim

9
Bu yüzden, sorun OP'nin görmesidir Access denied for user 'root'@'localhost'. Aramanı öneriyorsun mysql -u root -p. Bu komutun sonucudur: Access denied for user 'root'@'localhost'.
— phil294

5
sudo mysql -u root -pbenim için çalışıyor, ama mysql -u root -pyok
— Ivan Black

7

Güncelleştirdiğimde aynı belirtileri alıyorum, ancak benim için düzeltme (mysql'i öldürdükten ve almak için --skip-grant-table ile yeniden başlattıktan sonra) yürütmek.

update mysql.user set plugin = '';

Güncelleme işlemi bu sütunu "unix_socket" olarak ayarlamayı sever. Bunun neyi başarması gerektiğini bilmiyorum, ama benim için her şeyi bozuyor.


Bu benim sorunumu her şeyi denedikten sonra Ubuntu 16 LTS'de çözer .. izinler, grup kullanıcısı. Teşekkürler.
— onalbi

evet, sertleştirme senaryosunu çalıştırmıştım ve eklentiyi değiştirerek mysql_socketkullanmaya karar verdim, PASSWORD('xxxxxx')işe yaramadı.
— TheVillageIdiot 15:18

4

Mysql için bir şifre belirleyin

sudo dpkg-reconfigure mysql-server-5.x

Şimdi terminali açın ve yazın

mysql -uroot -p

parola ver ve enter tuşuna basın


4

Bununla ilgili sorunumu çözdüm:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

Son derece sorumlu ol. Bu çözümle MySQL sunucusunu ve tüm verilerini kaldırıyorsunuz.


Benim için çalışmıyor.
— Ivan Black,

!! Son derece sorumlu ol. Bu çözümle MySQL sunucusunu ve tüm verilerini kaldırıyorsunuz.
— Matiss Jurgelis

4

Ulrich Metzger ile aynı, makinemi Ubuntu 16.04 ve Mysql-server-5.7'ye yükselttikten sonra, pluginsütun değiştiği için root ile giriş yapamıyorum .

Sorunum sudo dpkg-reconfigure mysql-server-5.7+ kaldırarak + tasfiye + temizliği ile çözülmedi .

MySQL hizmetini durdurmak zorunda kaldı:

# sudo service mysql stop

Sonra mysql arka planını aşağıdaki --no-grant-tablesseçenekle yeniden başlatın :

# sudo mysqld_safe --no-grant-tables &

Ardından başka bir terminalde, komut ile mysql konsoluna girin (ki artık kimlik doğrulaması gerekmiyor) mysqlve bir SQL UPDATE ile şifre ve eklenti sütunlarını güncelleyin:

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

Son olarak, mysqld_safekomutu sonlandırın, mysql servisini yeniden başlatın ve normalde mysql'e bağlanın:

# sudo service mysql start
# mysql

2

Ubuntu 14.4LTS'den 16.4LTS'ye yükselttikten sonra, mysql kök kullanıcısı, mysql kullanıcı tablosunun eklenti sütununda yanlış bir giriş olduğundan dolayı artık giriş yapamadı. Yükseltme, root @ localhost kullanıcısı için eklenti değerini auth_socket değerine ayarlar ancak daha önce mysql yerel parola şifrelemesi kullandıysanız doğru girdi, mysql_native_password olmalıdır .


Bu benim için çalıştı ve sorunun kökü gibi görünüyor. Kaldırma ve yeniden yükleme "sorunu" düzeltmek için hiçbir şey yapmaz.
— SteveFromAçıklama
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.