DataBase

Terminal üzerinden Mysql Kontrol, Bash MySql Konutları, Temel Komutlar

Merhaba arkadaşlar, olası nedenler ile mysql i dışarı erişime kapattınız ise, sunucu hariç bağlantı yapamıyorsanız, artık bu komutları öğrenmenin zamanı gelmiştir. :)

Öncelikle ssh üzerinden sunucuya bağlanın, local sunucu içinde bunlar geçerli bu arada, ilk açmada mysql'e login olmanız gerekmektedir. Bunun için;

$ mysql -u<userName> -p

Yazmanız gerekmektedir bu aşamadan sonra siz şifre soracak. Şifreyi yazdıktan sonra mysql e bağlanmış olacaksınız. Mysql bağlantısını kopartmak için quit yazmanız yeterlidir.

 

Ekran çıktısı  : 

[email protected]:~# mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 132914

Server version: 5.7.27-0ubuntu0.16.04.1 (Ubuntu)


Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


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

mysql> 

 

Tüm Mysql Kullanıcılarını Listeleme

mysql>  SELECT User FROM mysql.user;

Örnek Çıktı :

mysql> SELECT User FROM mysql.user;

+------------------+

| User             |

+------------------+

| winnroll         |

| debian-sys-maint |

| onur_hi          |

| mysql.session    |

| mysql.sys        |

| root             |

| xboxTime        |

| yt_mp3           |

+------------------+

8 rows in set (0.04 sec)

Kullanıcı izin bilgileri ve tüm kullanıcı verileri dahil olmak üzere, MySQL kullanıcı bilgilerini listelemek istiyorsanız. Aşağıda yer alan sorguyu deneyebilirsiniz.

mysql> select User, Host from mysql.user;

Yeni Bir Kullanıcı Nasıl Oluşturulur

Bunu yapabilmek için MySql ‘e girdiğiniz user in izinleri buna yetkili olması gerekmektedir. Bu işlem için CREATE USER parametresi kullanacağız.

mysql>  CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

 

Ekran Çıktısı :

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Query OK, 0 rows affected (0.29 sec)

Bu noktada, newuser adlı veritabanı ile, bir şey yapmak için herhangi bir izin yoktur. Bu nedenle yapılacak ilk şey, kullanıcının ihtiyaç duyacağı bilgilere erişimini sağlamaktır.

mysql>  GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Ekran Çıktısı

mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Query OK, 0 rows affected (0.02 sec)

Bu komuttaki yıldız işaretleri, erişebilecekleri veri tabanına ve tabloya (sırasıyla) atıfta bulunur - bu özel komut kullanıcının tüm veritabanları ve tablolardaki tüm görevleri okumasını, düzenlemesini, yürütmesini ve gerçekleştirmesini sağlar.

 

Tüm ayarlar bittiğinde, ayarları aktif hale getrirmek için ;

mysql> FLUSH PRIVILEGES;

Ekran Çıktısı :

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.28 sec)

 

MySQL kullanıcı (user) şifre değiştirme

Bu kısımda 2 adet yol göstereceğim bunun nedeni mysql sürümleri ile alakalı. Çalışmaz ise diğerini deneyebilrsiniz.

mysql> ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';
mysql> SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

Ekran Çıktıları

Query OK, 0 rows affected (0.00 sec)

MySQL kullanıcı hesabını silme

mysql> DROP USER '[email protected]'localhost';

Eğer var olmayan bi sql silmeye çalışırsanız alacağınız hata "ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'"

Ekran Çıktısı :

mysql> DROP USER [email protected];
Query OK, 0 rows affected (0.08 sec)

 

MySql DataBase leri gösterme / listeleme

MySql ‘de terminal üzerinden bağlanırken giriş yaptığınız user adına açılmış DataBase kayıtlarını gösterir. Bunun için iki komut mevcut, ikisinin de çıktısı aynı.

mysql> SHOW DATABASES;
mysql> SHOW SCHEMAS;

 

Ekran Çıktısı:

kayıtlarını

mysql> SHOW DATABASES;

+----------------------+

| Database             |

+----------------------+

| information_schema   |

| es_anlamli |

| onurBlogs            |

| swaps             |

| key_Logici           |

| mysql                |

| performance_schema   |

| sys                  |

+----------------------+

8 rows in set (0.00 sec)

Eğer uğraştınız sistemde çok fazla db mevcut ise bunu LIKE ile filtre edebiliriz.

mysql> SHOW DATABASES LIKE 'sw%';

Ekran Çıktısı : 

mysql> SHOW DATABASES LIKE 'sw%';

+----------------+

| Database (hi%) |

+----------------+

| swaps       |

+----------------+

1 row in set (0.02 sec)

Yeni bir DataBase oluşturma 

mysql> CREATE DATABASE deneme;

Ekran çıktısı:

mysql> CREATE DATABASE deneme;

Query OK, 1 row affected (0.04 sec)

 

Bir veritabanı oluşturmak (DataBase), onu kullanmak için yetmez, açıkça onu seçmelisiniz.

mysql> USE deneme;

Ekran Çıktısı ;

mysql> USE deneme;

Database changed

MySQL veritabanını silme

mysql> DROP DATABASE database_name;

Ekran Çıktısı :

mysql> DROP DATABASE database_name;
Query OK, 0 rows affected (0.10 sec)

 

 

Terminal üzerinden Mysql Kontrol, Bash MySql Konutları, Temel Komutlar