HATA 1044 (42000): '' @ 'localhost' kullanıcısı için 'db' veritabanına erişim engellendi


164

MySQL'de sorgu yazmaya başlamak istiyorum.

show grants gösterileri:

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

Herhangi bir kullanıcı kimliğim yok, ancak bir kullanıcı yapmak istediğimde ayrıcalıklara sahip değilim, aynı zamanda tek bir kullanıcım bile olmadığında nasıl ayrıcalık yapılacağını bilmiyorum!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation

Kök olarak oturum açmaya çalıştım:

mysql> mysql -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
 -u root -p root' at line 1

3
İzinleri olan bir kullanıcı olarak oturum açmanız gerekir. En azından rootMySQL'i kurduğunuzda oluşturulmalıdır.
— derobert

kurulum sırasında bana şifre belirlememi söyler ve şimdi root olarak ayarlayabilirim ne yapabilirim?
— Nickool

9
Kök olarak oturum açmanız gerekir; örneğin, çalıştırarak mysql -u root -p. Sonra veritabanı sunucusunda tam izinlere sahip olacaksınız ve başka kullanıcılar oluşturabilirsiniz.
— derobert

komut satırını kullanarak oturum açtığınızda, root olarak oturum açmak için aşağıdakileri yapın: mysql -u root -p
— Travis

1
@nikparsa: Hayır, 'mysql' yerine bunu mysql komut isteminde değil, kabuk isteminden çalıştırırsınız.
— derobert

Yanıtlar:


219

Hayır, mysql -u root -pbash'da çalışmalısınız, MySQL komut satırında değil. Eğer mysql iseniz, exit yazarak çıkabilirsiniz .


? Ben bash gidebilirsiniz nasıl mysql burada bakın yüklerken sorun vardı superuser.com/questions/377679/... Sadece komut satırında abt bilmek
— Nickool

6
mysql çıkmak için 'quit' kullanın, o zaman bash olacak
— Nowhy

23
Varsayılan olarak şifre boştur
— bigpotato

Pencereler kullanıyorsam ne olur?
— PHPFan

çıkış veya çıkış benim için çalışmıyor, lütfen başka bir yol sağlayın. Windows
— 10'dayım

46

MySQL veritabanınız için bir kök hesap ayarlamanız gerekebilir:

Terminal tipinde:

mysqladmin -u root password 'root password goes here'

Ve sonra MySQL istemcisini çağırmak için:

mysql -h localhost -u root -p

1
Bu benim için çalıştı, başlangıçta iyi çalışıyordu ve sonra aniden bir gün çalışmayı bıraktı. Herhangi bir fikir, neden bu ilk etapta?
— mu 無

@ soleshoe im alma hatası: sudo: mysqladmin: komut bulunamadı lütfen bana ne yapabilirim yardım ?? mysql, Sistem Tercihi'nde çalışıyor.
— Hitarth

29

Buraya farklı bir sorunla getirildim. Ne zaman giriş yapmaya çalıştığımda, doğru kimlik doğrulaması yerine anonim kullanıcı olarak giriş yaptığım için bu mesajı aldım. Sorunumun çözümü şuydu:

Hangi kullanıcı olduğunuzu ve kimlerin izinlerine sahip olduğunuzu görmek için:

select user(), current_user();

Sinir bozucu anonim kullanıcıyı silmek için:

drop user ''@'localhost';

1
Ben "mysql -u kullanıcı adı -p" kullanmış olmama rağmen bu benim için sorunu çözdü. Çok garip: kullanıcı () kullanıcı adımdı, ama current_user () localhost ... neden bilmiyorum?
— ehanpil

2
@Leftteris hi .. im bu hatayı alıyorum: Erişim engellendi; Bu işlem için (CREATE USER ayrıcalığı) en az birine ihtiyacınız var Kullanıcı '' @ 'localhost' bırakmaya çalıştığımda;
— Hitarth

15

Bu, kullanıcı izinleriyle ilgili bir şeydir. Uygun hibe verilmesi bu sorunu çözecektir.

Adım [1]: Terminali açın ve bu komutu çalıştırın

$ mysql -uroot -p

Çıktı [1]: Bu size aşağıda gösterilen mysql istemini vermelidir

resim açıklamasını buraya girin

Adım 2]:

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';
mysql> grant all privileges on *.* to 'parsa'@'localhost';

Sözdizimi:

mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname';

Not:

  • ana bilgisayar adı IP adresi, localhost, 127.0.0.1 olabilir
  • In database_name/ table_name, * araçlarının tüm veritabanları
  • İçinde hostname, tüm ana bilgisayarları belirtmek için '%' kullanın

Adım [3]: quit/ exitcommand komutunu girerek veya tuşuna basarak geçerli mysql isteminden çıkın Ctrl+D.

Adım [4]: ​​Yeni kullanıcınıza giriş yapın

$ mysql -uparsa -pyour_password

Adım [5]: Veritabanını oluşturun

mysql> create database `database_name`;

yaptığımda CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';hata mesajı alıyorum: ERROR 1227 (42000): Erişim engellendi; Eğer (en az bir) bu işlem için KULLANICI ayrıcalığı (ler) CREATE gerek
— uçağını

Kök kullanıcı kullanarak mysql istemcisinde oturum açtınız mı
— theBuzzyCoder

9

Tam giriş komutunu denemek isteyebilirsiniz:

mysql -h host -u root -p 

burada ev sahibi olur 127.0.0.1.

Bunu sadece işbirliğinin var olduğundan emin olmak için yapın.

Kullanmak bir mysql -u root -psürü veritabanı araması yapmama izin veriyor, ancak bir yol ayarı nedeniyle herhangi bir veritabanı oluşturmayı reddediyor.


6

İlk olarak, komut satırına aşina değilseniz, web tarayıcınızdan phpmyadmin kullanmayı deneyin. Bu aslında bir mysql veritabanı ve bir kullanıcı adı oluşturulan emin olacaktır.

Komut satırından (bash) şu şekilde bağlanırsınız:

mysql -h hostname -u username -p database_name

Örneğin:

fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb

1
-pparola içindir ve veritabanı adını iletmek için kullanıyorsunuz. Ayrıca, şifre için, b / w boşluğu ve gerçek şifre olmamalıdır-p . -DBelirli bir veritabanına bağlanmak için kullanın .
— sv.

5

Eğer bir iseniz MySQLkabuğu, yazarak bunu çıkmak çıkmak istemi komuta dönersiniz.

Şimdi MySQLtam olarak aşağıdaki komutu kullanarak başlayın :

sudo mysql -u root -p

Kullanıcı adınız root dışında bir şeyse, yukarıdaki komuttaki 'root' yerine kullanıcı adınızı yazın:

sudo mysql -u <your-user-name> -p

Daha sonra size MySQLhesap / şifre soracak ve MySQLdaha sonra herhangi bir erişim ayrıcalığı sorunu göstermeyeceksiniz.


şifreyi girdikten sonra ben alıyorum "sudo: mysql: komut bulunamadı" Lütfen bana bu konuda yardım
— Hitarth

"sudo:" olmamalı, "sudo" olmalı ... Bir yazım hatası değilse, bence sorun budur.
— Kshitij Mittal

2

@Nickparsa… 2 sorununuz var:

1). mysql -uroot -p MySQL komut satırında değil bash (terminaliniz olarak da bilinir) yazılmalıdır. Bu hatayı yazarak düzeltirsiniz

exit

MySQL komut satırında. Şimdi bash / terminal komut satırınıza geri döndünüz.

2). Bir sözdizimi hatası var:

mysql -uroot -p; 

-p önündeki noktalı virgül gitmelidir. Doğru sözdizimi:

mysql -uroot -p

bash komut satırınıza doğru sözdizimini yazın. Bir kurulumunuz varsa bir şifre girin; yoksa enter düğmesine basmanız yeterlidir. Buna benzer bir yanıt almalısınız: resim açıklamasını buraya girin

Bu yardımcı olur umarım!


Merhaba ben bu commend ateşten sonra dirowly ekran var. / usr / local / mysql / bin / mysql, ancak bundan sonra "CREATE DATABASE kitaplar;" kullanarak veritabanı oluşturmaya çalıştığımda hata alıyorum: ERROR 1044 (42000): '' @ 'localhost' veritabanına kullanıcı için erişim engellendi ' kitapları lütfen bana yardım et
— Hitarth

0

Çoğu Geliştiriciler sunucuya giriş yapar (mysql veritabanı için kullanıcı adı ve parolaya sahip olduğunuzu varsayarım) sonra Bash'ten mysql> promptaşağıdaki komutu kullanmaya çalışırlar (çalışmaz

mysql -h localhost -u root -p

Yapılması gereken bash isteminde yukarıdaki komutu kullanmaktır -> bunu yaparken doğrudan mysql istemine götürecekse şifre isteyecektir ve

sonra veritabanı, tablo tek tek oluşturulabilir

Benzer bir kilitlenme ile karşılaştım, bu yüzden deneyimi paylaşıyorum


0

Yukarıdaki cevaplara göre doğru komut vardı, kaçırdığım şey, kullanıcı için 'Ana Bilgisayardan Bağlantıyı Sınırla' dediğiniz Workbench'ti, varsayılan olarak "%" olarak değiştirildi - bunu "localhost" olarak değiştirin ve daha sonra iyi bağlanıyor!

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.