Bir dizi benzer soruya baktım ve bu yüzden temelleri kontrol ettiğimi gösteriyorum. Tabii ki, bu tamamen açık bir şeyi özlemediğim anlamına gelmiyor. :-)
Sorum şu: Neden yapmaya çalıştığım şeyi yapma ayrıcalığına sahip bir kullanıcıya erişimim reddedildi ve şifreyi nereye yazdım ve erişim verildi? (Tamlık uğruna, MySQL istemcisinin program başlangıcında erişime izin vermemesini sağlamak için yanlış şifreyi yazmaya çalıştım.)
Arka fon:
MySQL sunucusunu ssh üzerinden çalıştıran makinenin kabuğuna giriş yaptım, root olarak giriş yapıyorum:
[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>
Muhteşem. Benzer soruların cevaplarını okuduğumda, imtiyazların hibe tablolarında bulunanlarla güncel olduğundan emin olmam gerektiğini gösteriyor
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
Sonra kim olduğumu düşündüğüm emin olun:
mysql> SELECT user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
... ve gerçekten gerçekten emin olun:
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>
Çok uzak çok iyi. Şimdi ne gibi ayrıcalıklara sahibim?
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, bu yüzden bu şekilde deneyelim (localhost olmayan bir 'root' kullanıcısı olduğunu da göreceksiniz):
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)
Müthiş! MySQL root @ localhost olduğumu düşünüyor ve root @ localhost tüm bu ayrıcalıklara sahip. Bu, istediğimi yapabilmem gerektiği anlamına geliyor, değil mi?
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)
Bu temel bir şeyi nasıl berbat edebilirdim?
Yan not: Tüm ayrıcalıklara sahip root adında bir kullanıcı olmadığımı önermek isteyen herkes için, bu harika ve başka bir kullanıcıya bazı ayrıcalıklar verebildiğimde yapmayı düşündüğüm bir şey.
Teşekkür ederim!
-p
Parola arasında sadece bir boşluk vardı . Aptal olduğunu biliyorum ama birine yardım edebilirim.