HATA 2002 (HY000): Yerel MySQL sunucusuna '/var/run/mysqld/mysqld.sock' soketi üzerinden bağlanamıyor (2)


441

Ben yüklü LAMBAYI üzerinde Ubuntu 12.04 LTS (Hassas Pangolin) ve daha sonra kök şifre koymak phpMyAdmin . Şifremi unuttum ve şimdi giriş yapamıyorum. Terminal üzerinden şifreyi değiştirmeye çalıştığımda:

HATA 2002 (HY000): Yerel MySQL sunucusuna '/var/run/mysqld/mysqld.sock' soketi üzerinden bağlanamıyor (2)

Bunu nasıl düzeltebilirim? LAMP'ı açamıyorum, kaldıramıyorum veya yeniden yükleyemiyorum.


Muhtemelen yeniden
kurmak

MySQL'i durdurarak ve
--grant

bunu terminalinize "sudo apt-get install mysql-server" yazın
Humphrey

MySQL hizmetini başlatın veya yeniden başlatın ve kontrol edin. sudo /etc/init.d/mysql başlangıç ​​veya sudo /etc/init.d/mysql yeniden başlatma
Jitendra Patel

systemctl start mariadb.service
Thewebus

Yanıtlar:


253

Bir keresinde bu sorunu yaşadım ve yükleyerek çözdüm mysql-server, bu yüzden mysql-serverdeğil mysql-clientveya başka bir şey yüklediğinizden emin olun .

Bu hata, dosyanın /var/run/mysqld/mysqld.sockmevcut olmadığı anlamına gelir , eğer yüklemediyseniz mysql-serverdosya mevcut olmaz demektir. Bu durumda,

sudo apt-get install mysql-server

Ancak mysql-server, zaten yüklü ve çalışıyorsa, yapılandırma dosyalarını kontrol etmeniz gerekir.

Yapılandırma dosyaları:

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

İçinde /etc/my.cnf, soket dosyası config olabilir /tmp/mysql.sockve /etc/mysql/my.cnfsoket dosyası config olabilir /var/run/mysqld/mysqld.sock. Yani, kaldırın veya yeniden adlandırın /etc/mysql/my.cnf, mysql kullanalım /etc/my.cnf, o zaman sorun çözülebilir.


Mysql arka plan programının çalışmasını ve mysql-sunucu çekirdeğini kurmuş olabilirsiniz, ancak ikili dosyalar ve sistem veritabanı kurulumu olan mysql sunucusunu kurmanız gerekir!
Cedric

99
sudo apt-get install mysql-serverubuntu üzerinde mysql yüklemek için
towry

9
Teknik olarak açıklamak zorunda kalsaydım, 1) "mysql -u <kullanıcı_adı> -h <MySQL_Server_address> -p" çalıştırıyorsanız, aslında mysql sunucusuna erişmek için mysql istemcisi çalıştırıyorsunuz demektir. '-H' ile bahsettiğiniz adres / IP adresine mysql sunucusu yüklenmemişse, yukarıdaki hata açılacaktır. Bunun nedeni MySQL sunucusuna mysql.sock soketi üzerinden bağlanamamasıdır. 2) Mysql sunucusu önceden kurulmuşsa çalışıyor olmalıdır. Değilse, aynı hatayı gözlemleyeceksiniz. Yani belirttiğiniz sunucuda çalıştırın.
Mayur Nagekar

1
Bu, veritabanının depolandığı dizini değiştirmeye çalışırsanız, ancak yapılandırma dosyasına yanlış dizine (yazım hatası gibi) koyarsanız da oluşabilir. Yazım hatası dizininin mevcut olmadığını söylemek yerine, dizine erişim izniniz olmadığını söyleyecektir.
Michael

4
İlk adım olarak, sunucu işlemini yeniden başlatmak için bir girişim öneriyorum (diğerlerinin sunucu vs istemci ayrımlarına bakın). Sudo /etc/init.d/mysql yeniden başlatmayı deneyin. Genellikle, yeniden kurulum gerekli değildir. İlk olarak günlük dosyalarını kontrol etmenizi öneririm. Sadece mysql günlük dosyası değil, aynı zamanda / var / log / syslog çünkü mysql'nin bir yan etkisi olarak bozulmasına neden olan bir sunucu çökmesi olabilir.
Rein

212

Bunu dene:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

Ayrıca (çalışıp çalışmadığını görmek için):

telnet 127.0.0.1 3306 

Muhtemelen ( Linux dağıtımına bağlı olarak) my.cnfdosyadaki yanlış bir yapılandırmadır ./etc/somewhere


1
Aynı hatayı alıyorum. Ve kontrol ettik ve hem ana hem de my.cnf varsayılan bağlama 127.0.0.1 zaten ayarlanmış. Ancak yukarıdaki komutunuzu kullanmak bağlanmamı sağladı. Sadece "mysql" yapmanın neden hata verdiğini görmek için avlamaya devam etmek zorunda kalacaksınız.
cchiera

1
Telnet alıyorum: Uzak ana bilgisayara bağlanamıyor: telnet komutu nedeniyle bağlantı reddedildi. Ancak apache hala localhost açabildiğim için çalışıyor
Rishi Dua

@cchiera Biliyorsun, daha önce bu hatayla karşılaşmadım. Ancak ssh tüneli kullanarak bir iOS uygulaması aracılığıyla db'ime bağlanmak istediğimde, bu 2013 hatasını aldım. Bunu çözmek için Referans 1 Referans 2'yi düzenlemek /etc/my.cnfve yorumlamak zorunda kaldım . Sonra bağlanabilirdim. Bundan sonra, ben şimdi bu cevaba götürdü bu 2002 hatası başlamıştı ve şimdi sadece yazarak neden bir açıklama alarak sana katılıyorum again.Definitely çalışıyor fark etmeden bir hata atar. #bind-address = 127.0.0.1 mysql-h
Pathros

Not: mysql -h localhostçalışmıyor. Yanıtta mysql -h 127.0.0.1belirtildiği şekilde kullandığınızdan emin olun .
vadasambar

Bu cevaptaki komutla giriş yaparsam bunu nasıl çözebilirim?
Carlos A. Jimenez Holmquist

128

Tüm bu cevapları görüyorum, ancak hiçbiri şifreyi sıfırlama seçeneği sunmuyor ve kabul edilen bir cevap yok . Asıl soru , şifresini unuttuğu için, bu cevapların çoğunun ima ettiği gibi sıfırlanmasına, çalışıp çalışmadığına (yüklü ya da değil) bakmaması gerekiyor.


Parolayı sıfırlamak için

Şu adımları izleyin (şifrenizi gerçekten unutursanız faydalı olabilir ve şu anda durumda olmasanız bile istediğiniz zaman deneyebilirsiniz):

  1. Dur mysql

    sudo /etc/init.d/mysql stop

    Veya diğer dağıtım versiyonları için:

    sudo /etc/init.d/mysqld stop
  2. MySQL'i güvenli modda başlatın

    sudo mysqld_safe --skip-grant-tables &
  3. Root kullanarak MySQL'de oturum açın

    mysql -uroot
  4. Kullanılacak MySQL veritabanını seçin

    use mysql;
  5. Parolayı sıfırla

    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    
    update user set authentication_string=password('mynewpassword') where user='root';
  6. Ayrıcalıkları yıkayın

    flush privileges;
  7. Sunucuyu yeniden başlatın

    quit
  8. Sunucuyu durdurun ve yeniden başlatın

    Ubuntu ve Debian:

    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start

    CentOS, Fedora ve RHEL'de:

    sudo /etc/init.d/mysqld stop
    ...
    sudo /etc/init.d/mysqld start
  9. Yeni bir şifre ile giriş yap

    mysql -u root -p
  10. Yeni şifreyi yazın ve hiçbir şey olmamış gibi sunucunuzun keyfini çıkarın

Bu, MySQL kök parolasını sıfırla'dan alınmıştır .


Kullanıcı şifresini güncellemek benim için işe yaramadı ancak bir kez MySQL monitörüne giriş yaptı ve mysql veritabanını kullandığımda, repair table user use_frmbu sorunu çözmek için çalıştı. - stackoverflow.com/questions/4297592/…
Craig van Tonder

20
MySQL 5.7 sürümünde, mysql.user tablo alanındaki parola alanı kaldırıldı, şimdi alan adı 'authentication_string' olduğundan, (5) olmalıdırupdate user set authentication_string=password('mynewpassword') where user='root';
Daniel

Bunu bir bash betiği yapmanın bir yolunu biliyor musunuz? Kutuyu her yeniden başlattığımda buna ihtiyacım var gibi görünüyor.
vphilipnyc

Bir şey bana bir geçici çözüm istediğinizi söylüyor, ancak aslında bunu her seferinde neden yapmanız gerektiğini bulmaya çalışmalı ve düzeltmelisiniz. Senaryo gelince yeni bir soru sormak ve zaten
denediklerinizi

2
Bu benim için harika çalıştı, ama önce bu çözümü uygulamak zorunda kaldım: stackoverflow.com/questions/42153059/…
Andrew Fox

68

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

  1. Olarak giriş yapın super userveya kullanınsudo
  2. Gedit/etc/mysql/my.cnf kullanarak aç
  3. bind-addressVeritabanı sunucusu ana makine IP adresini bulun ve değerini değiştirin. Benim için öyleydi localhostya127.0.0.1
  4. Dosyayı kaydedip kapatın.
  5. Terminale geri dönün ve çalıştırın sudo service mysql start

Ve benim için çalıştı.


4
Bundan, ben sadece sudo service mysql restart koştu ve çalıştı.
Orane

Benim durumumda hata IP değişti, bu yüzden bind-address = localhost ayarladım
Nicolás Arias

@rshahriar /etc/my.cnf adresimde bind-address olarak adlandırılan bir şey yok, alanı eklemek iyi bir fikir
RCBian

@SilvioDelgado Eğer ssh tünelleme ile bağlanmak istiyorsanız hayır. Burada açıklama
Pathros

mysql hizmetini yeniden başlatmak benim için de çalıştı, ancak yine de nedenini bulmak ve tekrar olmasını önlemek için hata günlüğünü bulmak için emin değilim ...
Maleka

41

Aşağıdaki komutu çalıştırarak bu sorunu giderdim:

mysql.server start

Ve eğer bir mac kullanıyorsanız ve mysql kurmak için demlemek kullandıysanız, şunu kullanın:

brew services start mysql

35

Benzer bir sorun yaşadım. mysql başlamaz:

sudo service mysql start
start: Job failed to start

Eğer barizliği devre dışı bırakırsam:

sudo aa-complain /etc/apparmor.d/*

sorun ortadan kalktı. Sorun şu ki, mysqld /run/mysqld/mysqld.sock sitesine erişmeye çalışıyordu, ancak görünen profil yalnızca /var/run/mysqld/mysqld.sock (/ var / run için / çalıştırıldı / çalıştırıldı) aynısı). Neden mysqld var yolunu kullanmadığından emin değilsiniz, çünkü tüm yapılandırma dosyalarında ayarlanan budur, ancak /etc/apparmor.d/usr.sbin.mysqld dosyasına aşağıdakileri ekleyerek sorunu çözebilirsiniz.

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,

Ben "sudo service mysql start" çağırmak zorunda olduğunu bilmiyordum. MySQL'i en son Ubuntu'ya kurduğumda, kurulumdan sonra otomatik olarak başlatıldığını düşünüyorum. Manjaro'daki MariaDB, kurulumdan sonra hizmetin açıkça başlatılmasını gerektirir.
dmiller309

31

Benim durumumda disk doluydu ve mysqld artık başlayamadı.

MySQL hizmetini yeniden başlatmayı deneyin.

> service mysql restart

veya

> service mysql stop

> service mysql start

stopKomutu tanımıyorsa, o zaman kesinlikle disk alanıdır. Bölümde biraz yer ayırmalı mysqlveya diski büyütmelisiniz.

Disk alanını

> df -h

2
Aynı şey başıma da geldi - tam disk. Biraz yer temizlendi, yeniden başlatıldı ve sorun gitti.
Darren

2
Eğer yürütme probleminiz buysa: "/etc/init.d/mysqld start" disk bölümünüzün dolu olduğunu söyleyecektir
Tickon

Benim için aynı, disk% 100. Temizlenmiş alan ve hizmete başla tamam
Hugo

28

mysqlİşlemi öldürerek bunu çözdüm:

ps -ef | grep mysql
kill [the id]

Ve sonra sunucuyu tekrar ile başladım:

sudo /etc/init.d/mysql restart

Ama startişe yarıyor:

sudo /etc/init.d/mysql start

Sonra olarak giriş adminyaptım ve işim bitti.


aslında, ben çökmeden önce mysql iptal edildi. Sonra "* Lütfen sistem günlüğüne bir göz atın." ve "HATA 2002 (HY000): Yerel MySQL sunucusuna '/var/run/mysqld/mysqld.sock' (111) soketi üzerinden bağlanamıyor. Sonunda, kendini kurtarmaya çalıştığının farkındayım, bu yüzden onu öldürüp yeniden başlatıyorum.
cwhsu

"Mysql start" ın başarısız olacağı (nadir) durumlar olduğundan, "restart" bağımsız değişkenini kullanmanız gerekir. Bir daemon sürecini öldürmeniz gerekiyorsa, kill komutu yerine "stop" argümanını kullanmak daha iyidir. Ancak, killall komutu kill komutundan (killall mysqld) daha kullanışlıdır.
Rein

MySQL işlemini öldürmek ve sonra MySQL'i yeniden başlatmak benim için iyi çalıştı
Vishal Shetty

21

Her nasılsa MySQL sunucu işlemi soketi yaratmadı ya da istemci soketi yanlış yerde arıyor.

İlk önerim MySQL sunucusunun çalışıp çalışmadığını kontrol etmektir. İkinci öneri, MySQL sunucusu başka bir ana bilgisayarda mı çalışıyor olabilir? Eğer öyleyse, -h <hostname>bayrağı terminaldeki MySQL istemcinize ekleyin .

MySQL gerçekten çalışıyorsa ve yerel olarak çalışıyorsa my.cnfdosyanızı kontrol edin . Gibi bir çizgi olmalı

socket = /var/run/mysqld/mysqld.sock

Bunun, yayınınızda belirttiğiniz soket konumuyla eşleşip eşleşmediğine bakın.

Deneyimden, en olası senaryo MySQL sunucunuzun ya hiç çalışmıyor ya da terminalden MySQL istemcinizi çalıştırdığınızla aynı ana bilgisayarda çalışmıyor olduğunu söyleyebilirim.


19

Üretim sunucumu yeniden başlattıktan sonra da aynı sorunu yaşadım. Debian 8.1 (Jessie) DigitalOcean damlacıklarında çalıştırıyorum.

Sorunumu çözmek için yaptığım şey bu:

  1. Dosyanın /var/run/mysqld/mysqld.sockvar olup olmadığını kontrol edin . Değilse, girerek manuel olarak oluşturun touch /var/run/mysqld/mysqld.sock(bunu yapmak zorundaydım).

  2. Böylece MySQL işlemi bu dosyayı kullanabilir. Girerek söz konusu dosyanın sahipliğini değiştirin chown mysql /var/run/mysqld/mysqld.sock.

  3. '2' yapıldıktan sonra, service mysql restartveya girerek MySQL servisini yeniden başlatın /etc/init.d/mysql restart.

Yukarıdaki adımları uyguladıktan sonra sorunum çözüldü. Nadiren bu sorunu yaşıyorum ve muhtemelen daha iyi bir yol var, bu yüzden elbette gerekirse yapıcı geribildirim sağlayın :).


1
Dosya orada değildi ve sadece mysql sunucusunu yeniden başlattım. Otomatik olarak dosyayı oluşturdu ve iyi başladı. Öncü için teşekkürler.
Sojurn

15

Mysql sunucunuz çalışmıyor olabilir. mysql.server startTerminale yazarak çalıştığından emin olun .


15

"bind-adress"My.cnf dosyasındaki parametreyi kontrol edin .

Başka komut ile deneyin:

mysql -h 127.0.0.1 -P 3306 -u root -p
  • -h ana bilgisayar 127.0.0.1, yani localhost için

  • Bağlantı noktası için -P (büyük harf olarak -P bildirimi) 3306, yani MySQL için varsayılan bağlantı noktası


11

İşte benim için işe yarayan:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart

Bu bir bağlantı oluşturur.


Benim için çalışmadı :( Bu iki klasör arasında bir semboliklik oluşturur askubuntu.com/a/56340/242873
Michael

11

Amazon EC2 kullanıyorsanız ve örnekte bu sorunu yaşıyorsanız, yapmanız gereken sadece:

sudo yum install mysql-server
sudo service mysqld restart

Amazon EC2'de yüklü bir sunucu yok (yalnızca istemci yüklü), bu nedenle bunu örneğinize yüklemeniz gerekir ve bundan sonra deneyin

 mysql -u root -p

çalışıp çalışmadığını kontrol etmek için.


Mysqld.service yeniden başlatılamadı: mysqld.service birimi bulunamadı. Ubuntu 16.04
Ketav Chotaliya

9

Sanırım hatayı her aldığınızda

HATA 2002 (HY000): Yerel MySQL sunucusuna '/var/lib/mysql/mysql.sock' soketi üzerinden bağlanamıyor

Önce mysqldaemon'unuzun çalışıp çalışmadığını kontrol etmenizi tavsiye ederim ... Çoğu zaman varsayılan olarak çalışmaz. Kontrol edebilirsiniz /etc/init.d/mysqld status.

Çalışmıyorsa, önce başlatın:

.../etc/init.d/mysqld start.

Eminim% 110 çalışacaktır.


9

Localhost kullanmak yerine:

mysql -u myuser -pmypassword -h localhost mydatabase

127.0.0.1 kullanın

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(ayrıca not edin, -p ve şifrem arasında boşluk yok)

Zevk almak :)


Bu satırı kullanarak şifrenizi güvenlik için komut satırından da dahil edemezsiniz: mysql -u myuser -p -h 127.0.0.1 mydatabase MySQL şifrenizi soracak ve yankılanmayacaktır.
DDay

1
Bu benim için çözdü. Ancak, neden hala 127.0.0.1çalışmadığını merak ediyorum localhost?!
not2savvy

9

Önemli veritabanlarının yedeklerini aldığınızdan emin olun ve ardından MySQL ile ilgili şeyleri kaldırmayı deneyin :

apt-get remove --purge mysql\*

Ardından tekrar yükleyin :

apt-get install mysql-server mysql-client

Bu benim için çalıştı ve veriler saklandı.

PHP MySQL hata gösteriyorsa PHP MySQL'i yeniden kurmanız gerekebilir :

apt-get install php5-fpm php5-mysql

Bence bu ölümcül silah. Her şeyi denedim ama bana teklif eden sadece teklifin. Teşekkür ederim !
Messou

9

Ben de aynı sorunla karşılaşırsanız mysql server, varsayılan olarak çalışmıyorsa tekrar tekrar bir saniye sonra duracak böylece tekrar çalışacaksınız ($ sudo service mysql start ) komutunu biliyorsanız değiştirebilirsiniz değiştirebilirsiniz.

bunun için komut kullan

$ sudo service mysql start   

(kullandığımız için gerekliyse kullanıcı şifresini girin sudo) ve ardından çalıştırın

$ sudo mysql -u root -p          (put user password if required )

şimdi veritabanını aldın


7

Yüklemeniz yakın zamanda kurulmuşsa, yüklemenizin mysql-server-5.5 olarak SUNUCU ... olup olmadığını doğrulamanız gerekir. Belki sadece "mysql" yüklediniz. Bu sunucu yerine yalnızca istemcidir.


7

Eğer varsa XAMPP Linux makinede yüklü, sizin kopyalamayı deneyin my.cnfdosyayı /opt/lampp/etc/my.cnfiçin/etc/my.cnf .

Sonra mysql -u roottekrar çalıştırın ... Artık doğru sokete sahip olmanız ve MySQL istemcisini çalıştırabilmeniz gerekir.


7

Ben de bu sorunu var, ama ben sadece yaptım:

sudo service mysql restart 

Benim için çalıştı.


7

ÇÖZÜMÜ BULDUM

Komutu çalıştırmadan önce :mysql_secure_installation

  • Aşama 1: sudo systemctl stop mariadb
  • Adım 2: sudo systemctl start mariadb
  • Aşama 3: mysql_secure_installation

Daha sonra root şifresi soracaktır ve Enter tuşuna basıp yeni root şifrenizi ayarlayabilirsiniz.


6

Benim durumumda, varsayılan bağlantı noktası 3306 başka bir işlem tarafından kullanılıyordu ve bu nedenle başlamıyordu. Sonra diğer hizmet durdu ve yaptım sudo service mysql start, iyi çalıştı. BTW, sudo lsof -Pn -iTCP:3306portu kimin kullandığını görmek gibi bir şey kullanabilirsiniz .


6

Benim durumumda biraz Ar-Ge yaparak çalıştı:

Kullanarak MySQL'e bağlanabiliyorum

root-debian#mysql -h 127.0.0.1 -u root -p

Ama bununla çalışmıyor mysql -u root -p.

Ben herhangi bir bulamadık bind-addressiçinde my.cnf . Bu yüzden parametresini outcommented socket=/var/lib/mysql/mysqld.sockiçinde my.cnfgiriş bilgileriyle bana bir soruna neden hangi.

Hizmeti yeniden başlattıktan sonra iyi gitti:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)

6

mysql yeniden başlatma ile bu sorunu çözdü

/etc/init.d/mysql stop

ve

/etc/init.d/mysql start

bu kadar.


5

Deneyime göre, sunucunun önce çalışıp çalışmadığını kontrol etmeniz ve sonra MySQL'i yapılandırmayı denemeniz gerektiğini söylüyorum. Son çözüm MySQL'i yeniden kurmaktır.


5

Terminali açın ve şunu yazın:

sudo apt-get purge mysql-client-core-5.6

sudo apt-get autoremove

sudo apt-get autoclean

sudo apt-get install mysql-client-core-5.5

sudo apt-get install mysql-server  

Hem MySQL veritabanı çekirdek istemcisi hem de MySQL Server paketleri aynı sürüm 5.5 olacaktır. MySQL Client 5.5 ve MySQL Server 5.5, Ubuntu 14.04'teki bu paketlerin paket koruyucular tarafından belirlenen geçerli "en iyi" versiyonlarıdır.

MySQL Client 5.6 ve MySQL Server 5.6'yı kurmayı tercih ederseniz, Ubuntu Yazılım Merkezi'nde mysql-client-core-5.6 ve mysql-server-5.6 paketlerini de bulabilirsiniz. Önemli olan, her iki durumda da istemci ve sunucu sürüm numaralarının eşleşmesidir.

Bu benim için çalıştı.


5

Doğru haklara sahip olup olmadığınızı kontrol edin:

sudo chmod 755 /var/lib/mysql/mysql

Aynı sorunları yaşadım ve bu benim için çalıştı. Bunu yaptıktan sonra MySQL'i başlatabiliyordum.


5

Benim durumumda, çalıştırdığımda mysql işlemini gerçekten öldüremedim gibi görünüyor

sudo service mysql stop
ps -ef | grep mysql

Mysql işlemi her zaman oradaydı, soket dosyasını engelliyordu ve yeni mysql işlemi kendisini oluşturamadı.

bu yüzden yardımcı oldu

cd /var/run
sudo cp mysqld/ mysqld.bc -rf
sudo chown mysql:mysql mysqld.bc/
sudo service mysql stop
sudo cp mysqld.bc/ mysqld -rf
sudo chown mysql:mysql mysqld -R
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

Şimdi kullanarak veritabanına giriş yapabiliyorum

mysql -u root

Ardından root şifresini güncellemek için:

UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;

PS : Kök passwod güncelleme sorunum vardı, "auth_socket" eklentisi ile sorun gibi görünüyor, bu yüzden tam ayrıcalıklarla yeni kullanıcı oluşturmak zorunda kaldı

insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";

Bu, şifre olmadan kullanıcı "süper" oluşturur ve daha sonra mysql -u super


cevap için teşekkürler ve ben mysql giriş yapabiliyor, ama benim veritabanlarında kullanıcı tablo yok.
John Joe

Bu çözüm işe yarıyor. Ancak root şifresini değiştirmek için sql deyimini çalıştırmadan önce bir veritabanı seçmeniz gerekir. Aşağıdaki ifadeyi yürütün <br> use mysql;<br> ve şimdi kullanabilirsiniz <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Charle K.

5

Debian sunucusunda Jessie, benim çalışma çözümüm sadece

service mysql restart
service mysql reload

kök kullanıcı olarak

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.