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.