Mysql Kullanıcı Yaratma ve Yetkilendirme

Mysql Kullanıcı Yaratma ve Yetkilendirme,

Syntax:

CREATE USER ‘kullanici_adi’ IDENTIFIED BY ‘password’;

Ürnek:
deneme isimli bir kullanıcı oluşturalım ve
şifresini 123456 yapalım.

CREATE USER ‘deneme’@’localhost’ IDENTIFIED BY ‘123456’;
Komutunu Çalıştırdığımızda deneme userını tanımlamış olacağız.

NOT:
Burada atlamamız gereken bir püf nokta var. ‘deneme’@’localhost’
dediğimiz iÇin bu eklediğimiz user Mysql server’a sadece localdan
erişebilir yani uzaktaki herhangi bir makinadan bu Mysql server’a
bağlanılamaz. şimdi @ işaretinden sonraki alanda:

1: % işareti koyarsak bu user heryerden Mysql server’a erişebilir.
Hem Localden hem de başka bir makinadan bağlanabilir.(Burada güvenliği
göz ardı etmemeniz gerekir)
CREATE USER ‘deneme’@’%’ IDENTIFIED BY ‘123456’;
2: @ işaretinden sonra ip adresi yazarsak bu user sadece ip sini yazdığımız makinadan Mysql server’a bağlanabilir.

CREATE USER ‘deneme’@’66.44.33.22’ IDENTIFIED BY ‘123456’;

şimdi tanımlamasını yaptığımız user’a yetki verelim.

GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO ‘deneme’@’localhost’;
Bu komut satırıyla deneme user’ımıza select,insert,update ve delete yetkisi
vermiş olduk.

GRANT ALL ON *.* TO ‘deneme’@’localhost’;
Bu komut satırıyla da deneme user’ımıza full yetki vermiş oluruz.

şimdi oluşturduğumuz deneme user’ını silmek iÇin de;
DROP USER deneme;
Komut satırını Çalıştırdığımızda da deneme userını silmiş olacağız.

Mysql root şifresini değiştirmek iÇin
mysql>UPDATE mysql.user SET Password=PASSWORD(‘123456′) WHERE User=’root’;
mysql>FLUSH PRIVILEGES;
sql lerini Çalıştırdığınızda root userının şifresi artık 123456 oldu.

Bir sonraki makaleler de görüşmek dileğiyle.
Tayfur BÖLER
Database Administrator

Database Terimleri

Database Terimleri,

Sql Server:(Bu Mysql Server da olabilir,Mssql Server da,Oracle Server da vs vs.):
Üzerinde yukarıda saydığım veritabanlarından herhangibirinin kurulu olduğu
server’a veya normal pc ye sql server denir.

Veritabanı: Verilerin mantıklı bir şekilde, belirli bir düzenle ilişkisel olarak tutulduğu ve
Veritabanı->Tablolar->Kolonlar hiyerarşisine sahip veriler topluluğudur.

Tablo: Verilerin satır ve sutunlar şeklinde tutulduğu yapıya denir.

Kolon,Sutun: Tablonun iÇindeki dikeyliklere sutun denir,

Satır:Tablonun iÇindeki yataylıklara satır denir.

İndex:Tablo iÇindeki dataların hızlı erişim iÇin belli algoritmalarla sıralanmasına index denir.

İnsert:Tablolara veri eklenmesine denir.

Delete:Tablodaki verinin silinmesine denir.

Truncate : Tablodaki tüm verilerin silinmesine denir. Bir farkıda truncate edilmiş bir tabloda auto incremant bir kolon varsa
bu kolon tekrar 1 den saymaya başlar.

Update :
Tablodaki verilerin değiştirilmesine denir. Aslında update işlemi bir verinin silinip yerine yenisinin konması işlemidir.
Yani update = delete + insert

Unique:

Bir alani Unique yaptiginizda onu essiz yapmis olursunuz. Mesela email alanini unique yaptiginizda ikinci kez ayni emaili eklemek istediginizde vt hata verecekdir. Her eklenen email bir kez eklene bilir ve veritabaninda böylelikle tekdir.

Primary Key:

PR ide unique gibidir bir alani essiz yapar ama farki bir tabloda sadece birtane primary key olmasidir. Pr olarak secilen alanlar otomatikmen not null olarak secilir.Genelde id alanlarinda kullanilir.

View: Sanal tabloda denilebilir. Bildiğiniz gibi veritabanı tablolardan oluşur.Tabloların kesişimi ve
birleşiminden oluşan yapıya denir.View lar veri tutmaz sadece tabloların görümünü tutar.

Ürnek Vererek AÇıklarsak:

Personel Tablosu

id adi soyadi
1 tayfur böler
2 ahmet taş


Adres Tablosu

id adres telefon
1 maslak 2223233
2 tuzla 3454355

şimdi bu iki tabloyu aşağıdaki sorgu ile birleştirerek adı ,soyadı ,adres bilgilerini Çekelim.

select personel.adi,personel.soyadi,adres.adres from personel
inner join adres on adres.id=personel.id;


Gelen Data:

adi soyadi adres
tayfur böler maslak
ahmet taş tuzla

şimdi bu sorguyu view haline getirelim.Viewımızın adıda iletişim olsun.

create view iletisim as
select personel.adi,personel.soyadi,adres.adres from personel
inner join adres on adres.id=personel.id;

şimdi de adı,soyadi,adres bilgisini viewımızdan Çekelim.

select * from iletisim;

Gelen Data:

adi soyadi adres
tayfur böler maslak
ahmet taş tuzla

Gördüğünüz gibi view kullanımı oldukÇa basit ve pratiktir.Bir nevi sanal bir tablo oluşturmuş olduk.
(Sonraki makalelerimde view konusunu detaylı anlatacağım)

Procedure: Database serverlarda saklanan sql ifadeleri denilebilir. Dışarıdan belli parametreler alabilen
ve sanki bir programlama dili gibiymiş if,case,while gibi deyimleri kullanabildiğimiz oldukÇa hızlı Çalışan
sql programcıklarıdır.
(Sonraki makalelerimde Procedure konusunu detaylı anlatacağım)

Trigger:
Kelime anlamı tetikleyici demektir. Tablolar üzerinde gerÇeklerşen bir işlemin başka bir işlemi
tetiklemesini sağlayan sql ifadeleri topluluğuna trigger denir.Kesinlikle kullanılması gerekir.
(Sonraki makalelerimde Trigger konusunu detaylı anlatacağım. )

Bir sonraki makaleler de görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator

CHAR() Veri Tipi ile VARCHAR() Veri Tipi Arasındaki Farklar

CHAR() Veri Tipi ile VARCHAR() Veri Tipi Arasındaki Farklar,

Veri tipleri performans aÇısından oldukÇa önemlidir. Oluşturduğumuz kolonlarda veri tiplerini seÇerken
oldukÇa dikkatli olmak gerekir ve amaca en uygun veri tipini seÇmek gerekir.

1- Char veritipi 0 ile 255 karakter arasında veri tutabilirken, Varchar veritipi MySQL v5,03 ten itibaren 0 ile 65,535 karakter arasında veri tutabilmektedir.

2- Char veritipi, tanımlandığı kadar kapasitenin tamamını kullanır. Ürnek olarak siz 5 karakterlik bir alan tanımlamışsanız, bu alana 2 karakter bile girmiş olsanız, geriye kalan sağdan 3 karakterlik alan boşluk karakteri ile doldurulur. Varchar veritipi ise değişken bir yapıya sahiptir ve tanımlanan karakter katarına kadar olan boyutta değişkenlik gösterebilir.

3- Char veritipinin kullanım alanı olarak sabit uzunluklu veri yapıları gösterilebilir. (Ürn: telefon numaraları, kredi kartı no vb.) Varchar ise değişken uzunluklu veri yapıları iÇin uygundur. (Ürn: isim, mail vb.)

4- Ayrıca bir tabloda varchar veritipinde tek bir alan bile yer alsa, bu aynı tablodaki diğer char veritipi ile belirlenmiş alanlarında Varchar biÇiminde Çalışmasına neden olur.

Bir sonraki Makaleler de görüşmek dileğiyle.

Tayfur BÖLER
Database Administrator

Mysql Veri Tipleri

Mysql Veri Tipleri

Text Veri Tipleri:

CHAR( ) : Sabit 0 – 255 karakter.(adi char(5)–> diye bir tanımla yapıp bu alana 2 karakterlik bir veri girsenizde 5 byte alan ayrılır )
VARCHAR( ) : Değişken 0 – 255 karakter.(adi varchar(5)–> diye bir tanımla yapıp bu alana 2 karakterlik bir veri girseniz, 2 byte alan ayrılır )
TINYTEXT : En Fazla 255 karakter.
TEXT : En Fazla 65.535 karakter.
BLOB : En Fazla 65.535 karakter.
MEDIUMTEXT : En Fazla 16.777.215 karakter.
MEDIUMBLOB : En Fazla 16.777.215 karakter.
LONGTEXT : En Fazla 4.294.967.295 karakter.
LONGBLOB : En Fazla 4.294.967.295 karakter.

Numeric Veri Tipleri:

TINYINT( ) : -128 ,127 yada 0-255 UNSIGNED.
SMALLINT( ) : -32.768 ,32.767 yada 0 “ 65.535 UNSIGNED.
MEDIUMINT( ) : -8.388.608 , 8.388.607 yada 0 “ 16.777.215 UNSIGNED.
INT( ) : -2.147.483.648 , 2.147.483.647 yada 0 “ 4.294.967.295
BIGINT( ) : -9.223.372.036.854.775.808 , 9.223.372.036.854.775.807 yada 0 “ 18.446.744.073.709.551.615
FLOAT : KüÇük Noktalı sayı.
DOUBLE( , ) : Büyük Noktalı sayı.
DECIMAL( , ) : DOUBLE tipte string şeklinde saklanır.

Tarih ve Zaman Veri Tipleri:

DATE : YYYY-MM-DD
DATETIME : YYYY-MM-DD HH:MM:SS
TIMESTAMP : YYYYMMDDHHMMSS
TIME : HH:MM:SS

Diğer Veri Tipleri:

ENUM ( ) : Kullanıcı tanımlı liste tipi. Ür; ENUM(“E”,”H”)
SET : Küme Tipi. ENUM benzeri. Aynı anda birden fazla kayıt tutabilir.

Bir sonraki makelelerde görüşmek dileğiyle.

Tayfur BÖLER
Database Administrator

Mysql ile Tanışma


MySQL
,dünyanın en yaygın kullanılan aÇık kaynaklı ,Çoklu iş parÇacıklı, Çoklu kullanıcılı ,
hızlı ve kullanışlı bir veritabanı yönetim sistemidir. UNIX, OS/2 ve Windows platformlarında Çalışmaktadır.
Kaynak kodu aÇık olan MySQL’in pek Çok platform iÇin Çalıştırılabilir ikilik kod halindeki indirilebilir
sürümleri de mevcuttur.
Ayrıca ODBC sürücüleri de bulunduğu iÇin birÇok geliştirme platformunda rahatlıkla kullanılabilir.
MySQL, tuttuğu tablolarla Çok kullanıcılı sistemlerde olan erişim hakları sorununu başarılı bir şekilde Çözmektedir.
MySQL’in 4.0 sürümü ile birlikte “transaction” desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir.
www.mysql.com adresinden hem windows platformu iÇin hem de linux platformu kurulum dosyalarını indirebisiniz.

Mysql’in Çalıştığı İşletim Sistemleri:

* Windows
* Windows x64
* Linux (non RPM packages)
* Linux (non RPM, Intel C/C++ compiled, glibc-2.3)
* Red Hat Enterprise Linux 3 RPM (x86)
* Red Hat Enterprise Linux 3 RPM (AMD64 / Intel EM64T)
* Red Hat Enterprise Linux 3 RPM (Intel IA64)
* Red Hat Enterprise Linux 4 RPM (x86)
* Red Hat Enterprise Linux 4 RPM (AMD64 / Intel EM64T)
* Red Hat Enterprise Linux 4 RPM (Intel IA64)
* Red Hat Enterprise Linux 5 RPM (x86)
* Red Hat Enterprise Linux 5 RPM (AMD64 / Intel EM64T)
* Red Hat Enterprise Linux 5 RPM (Intel IA64)
* SuSE Linux Enterprise Server 9 RPM (x86)
* SuSE Linux Enterprise Server 9 RPM (AMD64 / Intel EM64T)
* SuSE Linux Enterprise Server 9 RPM (Intel IA64)
* SuSE Linux Enterprise Server 10 RPM (x86)
* SuSE Linux Enterprise Server 10 RPM (AMD64 / Intel EM64T)
* SuSE Linux Enterprise Server 10 RPM (Intel IA64)
* Linux x86 generic RPM (dynamically linked)
* Linux AMD64 / Intel EM64T generic RPM
* Linux Intel IA64 generic RPM
* Solaris (pkgadd packages)
* Solaris (TAR packages)
* FreeBSD (TAR packages)
* Mac OS X (package format)
* Mac OS X (TAR packages)
* HP-UX (depot packages)
* HP-UX (TAR packages)
* IBM AIX
* IBM i5/OS (SAVF packages)
* IBM i5/OS (TAR packages)
* Source

şu an Mysql 4.1 ,5.0 , 5.1 ,6.0 versiyonları mevcuttur.

Mysql 6.0 versiyonu; şu an Alpha durumundadır. Fakat yaptığım testler de birkaÇ küÇük bug haricinde herhangi bir probleme rastlamadım.
Denemenizde fayda vardır derim.
Mysql 5.1 ; release edilmiş en son sürümdür.Tamamen gönül rahatlığıyla kullanabilirsiniz.
Mysql 5.0 ; şu an iÇin en yaygın sürümdür.Üoğu linux serverların stable depolarında hala 5.0 mevcuttur.
Mysql 4.1 ; hala kullanan bir Çok firma ve web masterın olduğu bir sürümdür.Bu sürümde diğer sürümlere göre bayağı kısıtlıdır..

Not:
Daha sonraki makalelerimde Mysql sürüm farklılıklarını detaylı şekilde anlatacağım.

Sun, MySQL AB “yi tam 1 milyar dolar ( 1,000,000,000 $ ) karşılığında satın aldı. Bundan sonrası iÇin Mysql’e
yarı aÇık kaynaklı veritabanı diyebiliriz.

DB engine olarak Mysql,

Transaction Tablolar
Innodb,
Berkeley DB
Atomik Tablolar
Myisam,
Heap,
Merge’ı kullanır. En yaygın olarak Innodb ve Myisam kullanılır. Engine leri de ilerideki makalelerde detaylı olarak anlatacağım.

Mysql’in tutabileceği data büyükleri aklın sınırlarını cidden zorlayabilir.şöyle anlatayım sınır yok.
Yani serverınız kapasitesi ne ise tek bir tablonuzun büyüklüğüde o kadar olabilir. şu an iÇin bildiğim
kadarıyla tek dosya büyüklüğüne 16 TB ‘a ulaşabilen tek işletim sistemi solaris. Yani böyle bir makinanız var ise
Mysql de tek tablonuzun büyüklüğü 16 TB’a kadar Çıkabilir. Ama Mysql bunu da aşıyor tek tablo büyüklüğü
65,536 TB büyüklüğe Çıkabiliyor.:)
Biraz daha aklın sınırlarını zorlayalım linux da ext4 dosya sistemi 1 EB (Eksa Byte) ulaşabiliyorsa Mysql in
gücünün ne kadar ürkütücü olduğunu düşünün.

1024 GB = 1 TB (terabayt)
1024 TB = 1 PB (petabayt)
1024 PB = 1 EB (eksabayt)

Mysql 5.0 ile birlikte stored procedure,trigger desteği gelmiştir. View desteğide mevcuttur. Mysql Proxy ,
cluster ve memcache özellikleri mevcuttur.Tüm bu özellikleri detaylı bir şekilde anlatacağım. Tabi Proxy,
cluster ve memcache linux serverlar üzerinde kullanılabilir.

Indexleme, foreing key, full text search, optimize table, repair table, check table ve yetkilendirme özellikleri mevcuttur.
Veri tipleri olarak mssql, oracle ve pgsql den eksik kalan herhangi bir tarafı yoktur.ODBC driverlara sahip olduğu
iÇin hemen hemen bütün programlama dilleriyle rahatlıkla kullanılabilir. Ama tabiki php ve mysql arasında ki
müthiştir. Buna birde linux’u eklersek linux-php-mysql üÇlüsü Çok yüksek performans sağlamaktadır.

Diğer makaleler de görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator