0% found this document useful (0 votes)
77 views12 pages

MySQL Notlar

Uploaded by

melih2307
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views12 pages

MySQL Notlar

Uploaded by

melih2307
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

MySQL Notları...

--MySQL ile başlamak--


(Windows)

Turgut Aydın
[Link]@[Link]

Sun Microsystems, Turkiye

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [1/12]
MySQL'i edinmek...
Temel Adres: [Link]
buradan download adresine “Downloads” tıklanarak erişilebilir.

Genel Download adresi: [Link]

Neler indirilmeli?
[Link] adresindeki çeşitli seçeneklerden başlamak için:

MySQL
Download: MySQL Community Server
Versiyon: “MySQL 5.1—Generally Available (GA) release for production use” - Üretime hazır sürüm: 5.1

MySQL Görsel Araçları:


Download: MySQL GUI Tools

Programlama dilleri için sürücüler ve bağdaştırıcılar:


• Connector/ODBC: Windows, Linux, Mac OS X, ve Unix platformları için standartlaşmış veritabanı sürücü.
• Connector/J: Java platformları ve geliştirme için standartlaşmış veritabanı sürücü.
• Connector/Net: .NET platformları ve geliştirme için standartlaşmış veritabanı sürücü.

Kestirme Download linkleri:

Windows için MySQL: [Link]


(Burada “Windows Essentials (x86)” seçin...)

MySQL GUI Araçları: [Link]

Programlama Dilleri için Sürücüler:


• Connector/ODBC: [Link]
• Connector/J: [Link]
• Connector/Net: [Link]

Not: Indirmeler için ücretsiz bir kayıt işlemi önerilmekte olup zorunlu değildir.

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [2/12]
MySQL Sitesi... Temel kaynaklar.....

Ana MySQL adresi:


[Link] (Herşeye buradan başlayarak erişilebilir!!!)

MySQL programlarını indirmek için:


[Link]

MySQL Dokümantasyonu:
[Link]

MySQL Geliştirici sitesi:


[Link]

MySQL ile ilgili bug raporlamak, üzerinde çalışılan buglarla ilgili bilgi almak, arama yapmak için:
[Link]

MySQL Açık Kaynak Projeleri:


[Link]

MySQL Yazarları/Bloglar:
[Link]

Netbeans/MySql bundle (Java ile geliştirmek için) :


[Link]

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [3/12]
Temel Mimari bilgiler...

Storage Engines (depolama motorları)

MySQL, diğer veri tabanı sistemlerinden farklı olarak SQL işlemcisi ile depolama motorunu
(storage engine) ayırmıştır.

Kullanıcı / uygulama, MySQL ile konuşurken ortak bir SQL arayüzünden konuşur.
Ancak veri saklanacağı ve sorgulanacağı zaman SQL işlemcisi bu fonksiyonu ilgili
depolama motoruna iletir. Verinin fiziksel saklanması ve sorgulanması ilgili depolama
motoru tarafından gerçekleşir ve bu motorun özelliklerine bağlı olarak sonuç alınır.

Veri, tablo bazında farklı depolama motorlarında tutulabilir.

En çok kullanılan iki depolama motoru MyISAM ve InnoDB'dir. MyISAM, genellikle


transaction gerektirmeyen ve web ortamı gibi verinin nispeten hassas olmadığı ortamlarda
yüksek performans ve ölçeklenebilirlik için tercih edilir.

OLTP türü transaction gerektiren ve verinin parasal bilgi gibi hassas olduğu yapılarda
genellikle ACID transaction'ları destekleyen InnoDB tercih edilir.

Daha özel uygulamalarda diğer depolama motorları kullanılır.

Tablo bazında ayrıştırılabildiği için aynı uygulama içinde birden fazla depolama motoru
kullanılabilmektedir.

Replikasyon
MySQL veri tabanlarında, özellikle ölçeklenebilirlik amacı ile replikasyon yapısı sıklıkla
kullanılır. Replikasyon asenkrondur ve farklı depolama motorları arasında çalışabilir.
Açık Kaynak Günleri/İstanbul MySQL
Ağustos 2009 [4/12]
Kurulum...
Windows ortamında MySQL tipik Windows uygulamaları gibi kurulur.

İndirilen MySQL Community Server edisyonunun “Windows Essentials (x86)” download'ı olmalıdır.

Çift tıklama ile MySQL kurulumu başlar. Kurulum tamamlandığında ilk konfigurasyon yine bir
wizard ile başlar. Kurulum aşamasında MySQL'in servis olarak çalışması ve MySQL binary
dosyalarının bulunduğu dizinin “PATH” üzerine eklenmesi için gerekli seçimlerin yapılması faydalı
olacaktır.

Detaylı (Windows) kurulum adımları için:

[Link]

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [5/12]
MySQL Nasıl Çalışıyor

MySQL'i çalıştıran ana program, mysqld (MySQL Daemon) adını alır.


UNIX'lerde mysqld adlı bir proses görünür.
Aynı program Windows'ta “[Link]” olarak çalışır.

Windows'ta [Link]'yi servis olarak çalıştırmak mümkündür. Birden çok defa farklı servis adları
ile servis kaydı yapılırsa aynı sistem üzerinde birden çok MySQL instance'ı çalıştırmak mümkün
olur. Bunları birbirleri ile çakışmayacak şekilde (ağ bilgileri, veri dizini vb) konfigure etmek
gerekir.

mysqld, MySQL'in kendisi yani MySQL sunucusudur.


Tüm ortamlarda TCP/IP ağ iletişimini destekler. Özel olarak kapatılmaz ise TCP/IP bağlantısı
açıktır.
Değiştirilmez ise 3306 numaralı portu dinleyerek çalışır.

Aynı zamanda Windows üzerinde Named Pipe ve Shared Memory kullanan programlar, aynı sistem
üzerindeki sunucuya erişebilir. Bunun için ilgili konfigurasyonun yapılması gerekir (ilk kurulumda
kapalıdır).

UNIX sistemler üzerinde de lokal olarak Unix socket file iletişimi desteklenmetedir (ilk kurulumda
açıktır).

MySQL ile çalışmak için en önemli ve standart araç, mysql istemcisidir ([Link]).

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [6/12]
Dosyalar.
MySQL Dizini ( [basedir] )
MySQL'in kurulduğu dizin. Dosyaların çoğu bu dizinin bir alt dizininde yer alır.

Konfigurasyon dosyaları:
Windows'ta MySQL sunucu konfigurasyonu için standart dosya: “[Link]” adını alır.
mysql, komut satırında yeri belirtilmediyse bu dosyayı önce Windows dizininde, sonra root
(C:\) dizininde arar. Kurulum sırasında konfigure edilen MySQL örneklerinde ise MySQL
kurulum dizini aranır (konfigurasyon dosyası mysql'i buraya bakacak şekilde başlatır.)

Program Dosyaları:
[basedir]\bin altındadır.

Log Dosyaları:

– General Query Log (Genel Sorgu Logu)


--log
– Binary Log
--log-bin
– Slow Query Log (Yavaş Sorgu Logu)
--log-slow-queries
– Error Log (Hata Logu)
host_name.err
konsol için: --console
– InnoDB Transaction Log'lar

Veri Dosyaları:

Data Dizininde ( [datadir] )

Data dizini altında her bir veri tabanı için veri tabanı adına sahip bir alt dizin açılır.
Her bir tablo için ilgili veri tabanı alt dizini içerisinde tabloadı.frm adında bir tanım dosyası
olur.
Veri ve index dosya sistemi, depolama motoruna bağlı olarak farklı bir yapıda olabilir.

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [7/12]
GUI araçlar:

● MySQL Administrator

MySQL Administrator ile çoğu sistem yönetimi işlerini yapmak mümkün:


● MySQL Sunucunun özet durum bilgisini almak
● MySQL Windows servisini konfigure etmek, başlangıç logunu görüntülemek
● Başlangıç değişkenlerini görüntülemek ve değiştirmek
● Kullanıcı yönetimi: Kullanıcı yaratmak, şifre değiştirmek, yetkilendirmek
● Sunucu ve kullanıcı bağlantılarını izlemek, sonlandırmak
● Sunucu sağlığını grafiksel olarak gözlemlemek, durum ve sistem değişkenlerini
gözlemlemek
● Log dosyalarını (Error Log, Slow Query Log ve General Query Log) taramak,
incelemek
● Replikasyon durumunu gözlemlemek
● Yedekleme ve geri yükleme
● Tablo istatistikleri ve özeti
● Veri Tabanı kataloğunu yönetmek: Tablolar, indexler, view'lar ve stored
procedure'ları gözlemlemek, düzenlemek, yaratmak

MySQL Admnistrator görsel bir araç olduğu için kullanımı kolaydır.

MySQL Administrator ile gerçekleştirilebilen fonksiyonları ve daha fazlasını mysql ve


mysqladmin komut satırı araçlarla ve konfigurasyon dosyalarını düzenleyerek yapmak
mümkündür.

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [8/12]
● MySQL Query Browser

MySQL Query Browser, MySQL için SQL cümleleri oluşturmayı, script hazırlamayı,
çalıştırmayı ve tablolardaki veriyi izleyerek basitçe düzenlemeyi kolaylaştıran
geliştirmecilere yönelik bir araçtır.

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [9/12]
Komut Satırı Araçlar
Bir çok komut satırı program bulunmakla birlikte burada iki tanesinden bahsedilecek:
● mysql
● mysqladmin

mysql komutu, lokal ve uzaktaki MySQL sunuculara bağlanarak SQL komutlarını ve scriptleri
çalıştırır. Bu komut kullanılarak lokal ve global MySQL değişkenlerine değer atanabilir, ancak
kalıcı olmaz. Kalıcı olması için [Link] konfigurasyon dosyasına da aynı düzenlemenin yapılması
gerekir. mysql komutu ile sunucu ile ilgili durum değerleri de okunabilir.

mysql komut satırını çağırmak:

> mysql -u root -p


mysql istemcisi, “root” kullanıcısı olarak başlatılır. Başlangıçta şifre sorar.
(root kullanıcısı şifresiz tanımlandıysa -p kullanılmamalıdır.)

> mysql --user=root --password=mypassword --protocol=tcp --host=localhost --port=3306 –default-


character-set=latin1

bu komut ile:
mysql istemcisi, “root” kullanıcısı olarak başlatılır
şifre olarak “mypassword” gönderilir (istemci şifreyi sormaz)
tcp/ip bağlantısı kurulur
MySQL sunucusu, “localhost” üzerindedir. (Buraya bir host adı ya da ip adresi verilebilir)
MySQL sunucusu 3306 numaralı (varsayılan) port'u dinlemektedir.
Varsayılan karakter seti olarak latin1 kullanılacaktır.

mysqladmin komutu ise SQL çalıştırılmadan yapılan sunucu ile ilgili çeşitli sistem yönetim işlevlerinin
yapılmasına yardım eder. Bu işlevlerden bazı önemli olanları şu şekilde çalışır:

mysqladmin -u kullaniciadi -p komut

Burada, “-u kullaniciadi”, MySQL kullanıcısının adıdır.


“-p” şifre girileceğini belirtir.

komut ise “mysqladmin”in hangi işlevi yapacağını belirler:

create dbadi --> yeni database yaratır


drop dbadi --> database'i düşürür (siler)
ping --> sunucunun bağlantı kabul edip etmediğini denetler
password yeni-password --> şifreyi değiştirir
shutdown --> sunucuyu kapatır.
status --> durum bilgisi verir
start-slave --> replikasyon için slave'i başlatır
stop-slave --> replikasyon için slave'i durdurur
variables --> değişkenleri döker
version --> sunucu sürüm bilgisini döker
Açık Kaynak Günleri/İstanbul MySQL
Ağustos 2009 [10/12]
Örnekler:
• Örnek veri tabanını indirin: [Link]
[Link]

Burada “world database (all versions, used in MySQL certifications and training) Zip” linki seçilmeli.

• Zip dosyasını açın.


“[Link]” script dosyası çıkacak.
Kolaylık için kök dizine kopyalayın ( C:\ )

• mysql komut istemcisini başlatın:


mysql -u root -p
• Mevcut veri tabanlarına bakın:
mysql> show databases;
• Boş veri tabanı yaratın:
mysql> create database world;
• Bu veritabanına geçin:
mysql> use world;
• Açtığınız [Link] dosyasını yükleyin:
mysql> source c:/[Link] (Not:mysql dizin ayracı olarak \ değil / işaretini anlar.)

• Veri tabanlarını listeleyerek yarattığınız veri tabanını görün.


mysql> show databases;
• Tabloları listeleyerek yarattığınız tabloları görün.
mysql> show tables;

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [11/12]
mysql komutu içinde:

mysql> \?
mysql> \s
mysql> show variables like 'bulk%';
mysql> select @@sql_mode \G
mysql> create database world;
mysql> use world;
mysql> source <[Link];
mysql> select version(), database();
mysql> show engines;
mysql> show engines \G
mysql> show databases;
mysql> show tables;
mysql> desc country;
mysql> CREATE TABLE test (
-> t1 TIMESTAMP,
-> t2 TIMESTAMP,
-> data CHAR(30)
-> );
mysql> show table status \G
mysql> show table status like 'city%'\G
mysql> \c
mysql> CREATE TABLE t (i INT NOT NULL PRIMARY KEY);
mysql> CREATE TABLE student
-> id int unsigned not null auto_increment,
-> name char (80),
-> name2 char(40),
-> PRIMARY KEY (id)
-> );
mysql> show create database world;
mysql> show create table t;
mysql> alter table t engine=innodb;
mysql> show create table t;
mysql> show table status like 't%'\G
mysql> select count(*) from city;
mysql> select * from city limit 10;
mysql> select [Link], count([Link]) from city,country where
[Link]=[Link] group by [Link] \G
mysql> explain select [Link], count([Link]) from city,country where
[Link]=[Link] group by [Link] \G

>mysqladmin status variables


>mysqladmin -u root -p shutdown

Not: Dosya adlarının büyük/küçük harf duyarlı olduğu (unix tabanlı) işletim sistemlerinde tablo adları aynen
yazılmalıdır. Windows'ta duyarlı değildir.

Açık Kaynak Günleri/İstanbul MySQL


Ağustos 2009 [12/12]

You might also like