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.