Web Analytics Made Easy -
StatCounter

SSH'de Kullanabileceğiniz Tüm MYSQL Komutları ve İşlevleri

Reyiz

Hırslı
Yönetici
MYSQL

Merhaba sayın enler.org üyeleri. Bu yazımda SSH'de kullanabileceğiniz MYSQL komutlarından ve onların işlevlerinden bahsedeceğim.

Eğer birgün yolunuz MySQL’e düşerse ve yapılandırmanız gerekirse benim gibi sizde arayüz sevmeyenlerdenseniz aşağıdaki komutları sık sık kullanacaksınız benden unutmamak adına burada bunları yazmaya karar verdim.

Öncelikle Linux üzerinde mysql sunucunuzu yönetebilmek ve yapılandırabilmek için mysql komut satırına düşmeniz gerekiyor.

MySQL komut satırına nasıl giriş yapılır?


Öncelikle yukarıdaki parametrelerin ne anlama geldiğini öğrenmeniz lazım. Aşağıda açıklamaları mevcut.

-u = username (kullanıcı adı)
-p = password (şifre)

Yukarıdaki komutu çalıştırdığınızda mysql komut satırına düşmek için mysql root kullanıcısının şifresini girmeniz gerekiyor.

Eğer şifreyide shell arayüzünde yazip baglanmak isterseniz aşağıdaki şekilde parametre’de ufak bir değişiklik yaparak. MySQL komut satırına düşebilirsiniz.

mysql -u root -p sifreniz

MySQL Sunucusu üzerinde Database seçimi yapma komutu:

(Komutları eğer database seviyesinde yazacaksanız öncelikle hangi veritabanı olduğunu belirtmeniz gerekir.) Örnek : use databaseadi;


Alacağınız Çıktı :

use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

MySQL Sunucusu üzerinde oluşturulmuş kullanıcıları görme & listeleme komutu:

(use mysql; komutunu çalıştırdığınızı varsayıyorum.)

SELECT User FROM mysql.user;

Alacağınız çıktı:

mysql> SELECT User FROM mysql.user;
+-----------+
| User |
+-----------+
| boxlisans |
| boxnet |
| root |
| boxlisans |
| boxnet |
| root |
| root |
+-----------+
7 rows in set (0.00 sec)

MySQL Sunucusu üzerinde oluşturulmuş veritabanlarını görme & listeleme:


Alacağınız çıktı:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| boxlisans |
| boxnet |
| mysql |
+--------------------+
4 rows in set (0.00 sec)

Eğer veritabanınızı seçtikten sonra o veritabanında hangi tabloların olduğunu görmek isterseniz show tables komutunu kullanın:


Alacağınız çıktı:

show tables;
+-----------------------+
| Tables_in_boxnet |
+-----------------------+
| admin |
| bandwith_packages |
| banlist |
| biletx |
| cui |
| general_settings |
| internetpackages |
| log |
| nas |
| ozellikler |
| radacct |
| radcheck |
| radgroupcheck |
| radgroupreply |
| radippool |
| radpostauth |
| radreply |
| radusergroup |
| vw_abone_eposta |
| vw_bandwith_raporlari |
| vw_en_cok_gelenler |
| vw_sms_telefonlar |
| vw_tum_eposta |
| wimax |
+-----------------------+
24 rows in set (0.00 sec)

Tabloları listeledikten sonra eğer tablonun içerisindeki field alanlarını gormek isterseniz aşağıdaki komutu kullanabilirsiniz:

(tablo sutunları).

describe tabloadi;

Alacağınız çıktı:

mysql> describe log;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| ad | text | NO | | NULL | |
| soyad | text | NO | | NULL | |
| telefon | text | NO | | NULL | |
| hata | text | NO | | NULL | |
| hatakodu | text | NO | | NULL | |
| username | text | NO | | NULL | |
| password | text | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+
8 rows in set (0.02 sec)

Tablonun içindeki verileri görmek isterseniz aşağıdaki komutu kullanabilirsiniz:

SELECT * FROM bandwith_packages;

Alacağınız çıktı:

mysql> SELECT * FROM bandwith_packages;
+----+----------+----------+---------+
| id | paketadi | download | upload |
+----+----------+----------+---------+
| 16 | 2MB | 2097152 | 524288 |
| 17 | 4 MB | 4194304 | 1048576 |
| 18 | 6 MB | 6144000 | 1048576 |
| 19 | 8 MB | 8388608 | 2097152 |
+----+----------+----------+---------+
4 rows in set (0.00 sec)

Eğer sutunlar içersinde bir data aramak isterseniz aşağıdaki komutu çalıştırmanız gerekir:

Örneğin bandwith_packages tablosu içersinde bulunan download sutununda value değeri “2097152” olanları listelettim.

SELECT * FROM bandwith_packages WHERE download = "2097152";

Alacağınız çıktı:

SELECT * FROM bandwith_packages WHERE download = "2097152";
+----+----------+----------+--------+
| id | paketadi | download | upload |
+----+----------+----------+--------+
| 16 | 2MB | 2097152 | 524288 |
+----+----------+----------+--------+
1 row in set (0.00 sec)

Senaryomuzun şöyle olduğunu dülünürsek; bandwith_packages tablomuzda bulunan datalarin içersinde paketadi sutununda “2” ile başlayan ve download değeri “2097152” olan verileri listelemek istersek aşağıdaki şekilde komutu kullanmanız gerekir:

SELECT * FROM bandwith_packages WHERE paketadi like "2%" AND download = '2097152';

Alacağınız çıktı:

mysql> SELECT * FROM bandwith_packages WHERE paketadi like "%2%" AND download = '2097152';
+----+----------+----------+---------+
| id | paketadi | download | upload |
+----+----------+----------+---------+
| 16 | 2MB | 2097152 | 524288 |
| 20 | 2MbTest | 2097152 | 1048576 |
| 21 | 2Lipaket | 2097152 | 1048576 |
| 22 | Paket2L? | 2097152 | 1048576 |
+----+----------+----------+---------+
4 rows in set (0.00 sec)
 
Son düzenleme:

Reyiz

Hırslı
Yönetici
Buradan devam ediyoruz :)

Bu bölümde CREATE, DROP, GRANT gibi fonksiyonları kullanarak veritabanı işlemleri yapacağız.

Yeni bir veritabanı oluşturmak:

CREATE DATABASE veritabaniadi;

Yeni bir kullanıcı oluşturmak:

(dbuser) kısmına oluşturmak istediğiniz kullanıcı adınızı yazacaksınız.

CREATE USER 'dbuser'@'localhost';

('dbpassword') kısmına ise yeni kullanıcınızın şifresini gireceksiniz.

SET PASSWORD FOR 'dbuser'@'localhost' = PASSWORD('dbpassword');

Oluşturduğumuz dbuser kullanıcının hangi veritabanında yetkili olduğunu bildirmemiz gerekiyor. Aksi taktirde oluşturduğumuz kullanıcı sahip olacağı veritabanına erişim yapamaz. Aşağıdaki komut sadece MySQL Sunucusu üzerinden dbuser kullanıcısının veritabaniadi isimli veritabanına erişim verecektir.

GRANT ALL ON veritabaniadi.* TO 'dbuser'@'localhost';

Eğer dışarıdan gelecek bütün mysql connection bağlantılarına izin vermek isterseniz komutu aşağıdaki gibi değiştirmeniz gerekir.

GRANT ALL ON veritabaniadi.* TO 'dbuser'@'%' IDENTIFIED BY 'dbpassword';

Biraz daha komutu özelleştirip sadece belirli ip adresinden erişmesini isterseniz aşağıdaki şekilde bir özelleştirme yapılabilir:

GRANT ALL ON veritabaniadi.* TO 'dbuser'@'192.168.1.100' IDENTIFIED BY 'dbpassword';

Eğer sadece sizin belirlediğiniz işlemleri yapmasını istiyorsaniz. Örneğin sadece SELECT, INSERT, UPDATE, DELETE yetkisi vermek isterseniz aşağıdaki şekilde bir komut çalıştırmanız gerekir.

GRANT SELECT, INSERT, UPDATE, DELETE ON veritabaniadi.users TO 'dbuser'@'%';

Eğer kullanıcı yetkilerine bakmak isterseniz aşağıdaki komutu kullanabilirsiniz:

SHOW GRANTS FOR 'dbuser'@'localhost';
---veya
SHOW GRANTS FOR 'dbuser'@'%';

Db oluşturma,kullanıcı oluşturma ve yetkilendirme işlemlerini yaptıktan sonra şimdi biraz da drop üzerinde duralım.

MySQL'den veritabanı silmek;

drop database veritabaniadi;

MySQL'den veritabanı tablosu silmek:

Eğer veritabanınız üzerinde bir tabloyu silmek isterseniz öncelikle use veritabaniadi; ile hangi veritabanında işlem yapacaksanız seçiminizi yapip konsol’da aşağıdaki komutu çalıştırmanız gerekir.

drop table tabloadi;

Kullanıcıları silmek içinse aşağıdaki komutu kullanmanız gerekir:

Örneğin dbuser kullanicisini silmek için aşağıdaki komutu çalıştırınız:

DROP USER dbuser;
---veya
DROP USER 'korsan'@'localhost';
DROP USER 'korsan'@'%';

ve her şey bu kadar. Baya uzun bir yazı oldu bunun farkındayım ama umarım insanlara faydalı olur da benim emeğim boşa gitmez :)
 
Konuyu başlatan Benzer konular Forum Cevaplar Tarih
Reyiz SSH üzerinden MySQL Veritabanı Nasıl Yüklenir? Linux 0

Benzer konular

Üst