SORU
13 Aralık 2011, Salı


Erişim kullanıcı için 'kök'@'localhost' ayrıcalıkları için çalışırken engellendi. Ne ayrıcalığı?

Benzer birkaç soru baktım ve temel kontrol ettim gösteren biriyim. Buna rağmen elbette ki, bu şey tamamen açık kaçırmadım anlamına gelmez. :-)

Benim soru: neden bu ayrıcalık yapmaya çalışıyorum ve zaten yazdığınız şifre ve erişim izni gittiğim yerlerde yapmak ile bir kullanıcının erişim engellendi mıyım? (Bütünlüğü uğruna, sadece MySQL istemci bana program başında erişim inkar edemez emin olmak için yanlış parola yazmaya çalıştım.)

Arka plan:

Ssh üzerinden MySQL sunucusu çalıştıran kabuk için tıklayın, root olarak giriş:

[myname@host ~]$ mysql -u root -p -hlocalhost
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 62396
Server version: 5.5.18-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Harika. Benzer soruların cevapları benim okuma ayrıcalığı tablolarda ne ile geçerli olduğundan emin olmak gerektiğini gösteriyor

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> 

Sırada ben varım sanırım kim olduğumu emin olun:

mysql> SELECT user();
 ---------------- 
| user()         |
 ---------------- 
| root@localhost |
 ---------------- 
1 row in set (0.00 sec)

...ve gerçektengerçektenemin olun:

mysql> SELECT current_user();
 ---------------- 
| current_user() |
 ---------------- 
| root@localhost |
 ---------------- 
1 row in set (0.00 sec)

mysql> 

Şimdiye kadar çok iyi. Şimdi ne ayrıcalıkları var mı?

mysql> SHOW GRANTS FOR 'root'@'localhost';
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
| Grants for root@localhost                                                                                                                                                                                                                                                                                                                                                                                                        |
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '[OBSCURED]' WITH GRANT OPTION |
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
1 row in set (0.00 sec)

Şimdi bunu okumak biraz zor oluyor, bu yüzden sağlar bu yolu deneyin (aynı zamanda olmayan bir localhost olduğunu görürsünüz 'root' kullanıcı):

mysql> SELECT * FROM mysql.user WHERE User='root'\G
*************************** 1. row ***************************
                 Host: localhost
                 User: root
             Password: *[OBSCURED]
          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
             ssl_type: 
           ssl_cipher: 
          x509_issuer: 
         x509_subject: 
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
*************************** 2. row ***************************
                 Host: [HOSTNAME].com
                 User: root
             Password: *[OBSCURED]
          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
             ssl_type: 
           ssl_cipher: 
          x509_issuer: 
         x509_subject: 
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
 2 rows in set (0.00 sec)

Harika! MySQL root olduğumu düşünüyor@localhost ve root@localhost tüm bu ayrıcalıkları vardır. Benim istediğim de yapabilir, değil mi olmalıyım demek?

mysql> GRANT ALL PRIVILEGES ON *.* TO 'steves'@'[hostname].com' IDENTIFIED BY '[OBSCURED]' WITH GRANT OPTION;
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Nasıl bir şey bu temel hata yapmış olabilir miyim?

Ben bir kullanıcı adı değil önermek isteyen herkes tüm ayrıcalıkları ile kök için, harika bir şey ve başka bir kullanıcı bazı ayrıcalıklar verebileceğim bir kez yaptığını düşüneceğim. yan not:

Teşekkür ederim!

CEVAP
22 Ocak 2012, Pazar


Ben de MySQL 5.1 den 5.5 MySQL yükseltme yaptıktan sonra Windows bu ama aynı problem vardı. Ben zaten değiştirme, oluşturma ve parolahere, here, here, ve here hiçbir ipucu belirtilen sıfırlama çalıştı. Ben hala aynı hatayı alıyorum:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Normalde bağlayın, tüm veritabanları Haritayı seçer ve ekler ve kullanıcılar ekleme şansım var, ama vermeye gelince, her şeyi berbat ettim. Bu erişim hatası tekrar ortaya engellendi.

here belirtildiği gibi MySQL sunucu bin/ dizininde aşağıdaki komutu ile ayrıcalıkları tespit ederek bu sorunu çözmeyi başardım:

C:\MySQL Server 5.5\bin> mysql_upgrade

O zaman, sorun gitti. Bu çözüm, genellikle MySQL Linux hem de Windows üzerinde aynı komutu sağlamak çok beri Linux üzerinde çalışır umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Grace Su

    Grace Su

    6 Ocak 2006
  • monkophile

    monkophile

    25 Temmuz 2007
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008