MySQL, modern büyük veri ekosistemindeki en tanınmış teknolojilerden biridir. MySQL ile, ilişkisel sistemlerde yeni olanlar bile hızlı, güçlü ve güvenli veri depolama sistemleri oluşturabilir. MySQL’in programatik sözdizimi ve arayüzleri, diğer popüler sorgu dillerinin ve yapılandırılmış veri depolarının geniş dünyasına açılan mükemmel bir ağ geçitidir.

MySQL nedir, kısaca anlatmaya çalıştık. Şimdi biraz detaylandıralım.

MySQL, Oracle tarafından geliştirilmiş, yapılandırılmış sorgu diline (SQL) dayalı bir ilişkisel veritabanı yönetim sistemidir (RDBMS).

Açık kaynak yapısı, istikrarı ve Oracle’nin sürekli geliştirme desteğiyle zengin bir özellik setine sahiptir. Facebook, Flickr, Twitter, Wikipedia ve YouTube gibi internet açısından kritik kuruluşların hepsi MySQL kullanır.

Veritabanı İle İlişkisi Nedir? 

Verileri bir veritabanında depolamak için kullanabileceğiniz farklı yaklaşımlar vardır. MySQL, ilişkisel veritabanı adı verilen bir yaklaşımı tercih eder.

İlişkisel bir veritabanıyla, verileriniz, her şeyi tek bir büyük depolama biriminde bir araya getirmek yerine, tablo adı verilen çok sayıda ayrı depolama alanına böler.

Örneğin, iki tür bilgiyi depolamak istediğinizi varsayalım:

Müşteriler: İsimleri, adresleri, detayları vb.

Siparişler: Hangi ürünlerin satın alındığı, fiyatı, siparişi kimin verdiği vb.

Tüm bu verileri tek bir büyük depolama alanında toplamaya çalışsaydınız, birkaç sorununuz olurdu. Bu sorunları çözmek için, ilişkisel bir veritabanı müşteriler için ayrı bir tablo, siparişler için başka bir tablo kullanır.

“Key” yani “Anahtar” kullanarak, bu iki tablodaki verileri birbirine bağlayabilir, böylece farklı tablolardaki verileri gerektiği gibi işleyebilir ve birleştirebilirsiniz.

WordPress sitenizin veritabanına daha önce baktıysanız, bu ilişkisel modeli kullandığını ve tüm verilerinizin ayrı tablolara bölündüğünü görebilirsiniz.

İstemci-Sunucu Modeli 

İlişkisel bir veritabanı sistemi olmanın ötesinde, MySQL ayrıca istemci-sunucu modeli adı verilen bir şey kullanır.

Sunucu kısmı, verilerinizin gerçekte bulunduğu yerdir. Bu verilere erişmek için talepte bulunmanız gerekir.

İstemci daha önce bahsettiğimiz programlama dili olan SQL’i kullanarak müşterinin ihtiyaç duyduğu veriler için veritabanı sunucusuna bir istek gönderir.

Örneğin, birisi sitenizdeki bir blog gönderisini ziyaret ederse, WordPress siteniz, blog gönderisini o ziyaretçinin web tarayıcısına teslim etmek için ihtiyaç duyduğu tüm bilgileri almak için veritabanı sunucusuna birden çok SQL isteği gönderir.

MySQL Nasıl Çalışır?

Piyasadaki çoğu veritabanı yönetim sistemi gibi, MySQL de bir istemci-sunucu mimarisine sahiptir ve ağa bağlı bir ortamda kullanılabilir. Sunucu programı, veritabanı dosyalarının depolandığı aynı fiziksel veya sanal sistemde bulunur ve veritabanları ile tüm etkileşimlerden sorumludur.

Veritabanı yönetimi için MySQL araçları veya diğer programlama dillerinde yazılmış uygulamalar gibi çeşitli istemci programları, sunucuya bağlanabilir ve veritabanı talepleri yapabilir. Sunucu, istemci isteklerini işler ve sonuçları istemciye geri gönderir.

Bir istemci, sunucuyla aynı sistemde veya uzak bir ana bilgisayarda bulunabilir ve sunucuya bir ağ veya internet bağlantısı üzerinden veritabanı istekleri gönderebilir. Önemli olan, MySQL sunucusunun istemcilerin bağlanması için çalışıyor olmasıdır.

MySQL Nerede Kullanılır?

MySQL için en yaygın kullanım, bir web veritabanı içindir. Tek bir bilgi kaydından çevrimiçi mağaza için mevcut ürünlerin tüm envanterine kadar her şeyi depolamak için kullanılabilir.

PHP veya Perl gibi bir betik diliyle ilişkili olarak, kategorize edilmiş ve aranabilir bilgileri bir web sitesi kullanıcısına hızlı bir şekilde göstermek için bir mySQL veritabanı ile gerçek zamanlı olarak etkileşime girecek web siteleri oluşturmak mümkündür.

SQL Nedir? MySQL ile SQL Arasındaki Fark Nedir? 

İlişkisel model ilk olarak 1970 tarihli bir makalede Edgar F. Codd tarafından tasvir edilmiştir. Modelle ilgili ilk ticari programlama dillerinden biri olan SQL, kısa bir süre sonra IBM tarafından geliştirilmiştir. SQL, 1986’da ANSI standardı olarak kabul edilmiş ve bir yıl sonra ISO’da en yaygın kullanılan veritabanı dili olarak benimsenmiştir.

MySQL ise ilk kez 1995 yılında İsveçli şirket MySQL AB tarafından piyasaya sürülmüştür. İlişkisel sistemlerin yükselişini takip eden veritabanı yazılımının çoğu gibi, MySQL de; daha fazla özellik, destek, prosedürel programlama, kontrol-akış mekanizmalarıyla orijinal SQL standardının bir uzantısı haline gelmiştir.

MySQL ile SQL arasındaki farka gelince…

MySQL, açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir. WordPress siteleri için tüm blog yazılarınızı, kullanıcılarınızı, eklenti bilgilerinizi vb. saklamanıza yardımcı olur. Bu bilgileri ayrı “tablolarda” saklar ve “anahtarlar” ile birleştirir, bu yüzden ilişkiseldir.

WordPress sitenizin bu bilgilere erişmesi gerektiğinde, SQL kullanarak MySQL veritabanı sunucusuna bir istek gönderilir (bu, istemci-sunucu modelidir).

En Popüler MySQL GUI Araçları

MySQL, en yaygın kullanılan ve popüler veritabanı teknolojileri arasındadır. Bu nedenle veritabanları tasarlama, oluşturma ve yönetme süreçlerini daha kolay ve daha rahat hale getirmek için oldukça fazla araç oluşturulmuştur. Ancak, gereksinimlerinize en uygun aracı seçmek zor olabilir. Bu nedenle, hem geliştiriciler hem de DBA’lar için en iyi 3 MySQL GUI aracının listesini sizin için derledik:

1. dbForge Studio for MySQL

Bu çok amaçlı GUI aracı, MySQL veritabanı geliştirme ve bakımı için gerekli olan çok çeşitli özellik ve işlevleri içeren bir IDE’dir. Sorgular oluşturmanıza ve yürütmenize, depolanan rutinleri geliştirmenize ve hatalarını ayıklamanıza, veritabanı nesne yönetimini otomatikleştirmenize, sezgisel bir arayüz aracılığıyla tablo verilerini analiz etmenize ve çok daha fazlasına olanak tanır.

2. MySQL Workbench

MySQL Workbench, veritabanı mimarları, geliştiricileri ve DBA’lar için birleşik bir görsel araçtır. Veritabanlarını tasarlamak, geliştirmek ve yönetmek için çeşitli işlevler sağlar. 3 sürümü mevcuttur: Community, Standard ve Enterprise. Community, temel bir dizi özellik sunan ücretsiz bir açık kaynak sürümüdür, geri kalan ikisi genişletilmiş işlevselliğe sahip ticari sürümlerdir.

3. phpMyAdmin

phpMyAdmin, PHP ile yazılmış web tabanlı bir MySQL yönetim aracıdır. Kullanımının çok kolay olması ve tamamen ücretsiz olması nedeniyle türünün en popüler araçlarından biridir. Diğer araçların sağladığı bazı gelişmiş özelliklerden yoksun olabilir, ancak temel işlevselliği, MySQL konusunda ileri düzeyde bilgi sahibi olmadan çalışan web siteleri oluşturmanıza yardımcı olmak için yeterlidir.

Bazı Önemli MySQL Komutları

Bazı önemli MySQL komutları aşağıdaki gibidir:

  • Oturum açmak için: # [mysql dir]/bin/mysql -h hostname -u username -ppassword
  • Giriş yapmak için (pencerelerden): mysql dir/bin/mysql.exe -h hostname -u username -ppassword
  • Bir veritabanı oluşturmak için: mysql> create database [databasename];
  • Sunucudaki tüm veritabanlarını listelemek için: mysql> show databases;
  • DB’deki tüm tabloları görmek için: mysql> show tables;
  • Tablonun alan formatlarını görmek için: mysql> describe [table name];
  • Db’yi silmek için: mysql> drop database [database name];
  • Bir tabloyu silmek için: mysql> drop table [table name];
  • Bir tablodaki tüm verileri göstermek için: mysql> SELECT * FROM [table name];
  • Sütunları ve sütun bilgilerini döndürmek için: mysql> show columns from [table name];
  • “Bir Şey” adını ve ‘0123456789’ telefon numarasını içeren tüm kayıtları göstermek için: mysql> SELECT * FROM [table name] WHERE name = "Something" AND phone_number = ‘0123456789';
  • Artan (artan) veya azalan (azalan) olarak sıralanmış seçili kayıtları göstermek için: mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
  • Toplam sütun için: mysql> SELECT SUM(*) FROM [table name];
  • Yeni bir kullanıcı oluşturmak için: 

# mysql -u root -p

mysql> use mysql;

mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));

mysql> flush privileges;

  • Bir tablodaki bilgileri güncellemek için: mysql> UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = ‘user';
  • Bir tablodan bir satırı silmek için: mysql> DELETE from [table name] where [field name] = ‘fieldvalue';
  • Veritabanı izinlerini güncellemek için: mysql> flush privileges;
  • Bir sütunu silmek için: mysql> alter table [table name] drop column [column name];
  • Db’ye yeni bir sütun eklemek için: mysql> alter table [table name] add column [new column name] varchar (20);
  • Sütun adını değiştirmek için: mysql> alter table [table name] change [old column name] [new column name] varchar (50);
  • Özgün bir sütun oluşturmak için: mysql> alter table [table name] add unique ([column name]);
  • Tablodan benzersizliği silmek için: mysql> alter table [table name] drop index [colmn name];
  • Bir CSV dosyasını bir tabloya yüklemek için: mysql> LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);

WordPress’te MySQL Bağlantısı Nasıl Yapılır?

WordPress’in işlevsel olması için iki ana bileşen gerekir: WordPress web sitesinden indirilebilen varsayılan dosya seti ve bir MySQL veritabanı.

Birçok hosting sağlayıcısı tek tıklamayla WordPress yükleyicileri sunar ve bu işlemle uğraşmanıza gerek kalmaz. Bazı hosting sağlayıcıları ise bunu yapmaz, bu nedenle veritabanını manuel olarak oluşturmanız gerekir.

Bu başlık altında, manuel olarak yeni bir veritabanı oluşturma sürecini gözden geçireceğiz. 

1. MySQL Veritabanlarına Erişim

Öncelikle, hosting hesabınızın cPanel arayüzünden MySQL veritabanı yöneticisine erişmeniz gerekir:

2. MySQL veritabanını oluşturma

MySQL yönetici sayfasına geldikten sonra, devam edebilir ve yeni bir veri tabanı oluşturabilirsiniz. Tüm veri tabanları genellikle hesap adınızın önüne eklenir. Dolayısıyla, “mydb” adında yeni bir veritabanı oluşturacaksanız, “accountname_mydb” olarak oluşturulacaktır.

“Create Database – Veri tabanı Oluştur” düğmesine tıkladığınızda, veri tabanı oluşturulacaktır. Veri tabanını WordPress’e bağlamadan önceki son işlemin bu olmadığını unutmayın. Ayrıca yeni bir veritabanı kullanıcısı oluşturmanız veya var olan birini atamanız gerekecektir. Bunu yaptıktan sonra, artık yeni veritabanınızı WordPress’e bağlayabilirsiniz. 

3. Yeni veri tabanı kullanıcısı oluşturma

Zaten var olan bir veri tabanı kullanıcısına veri tabanı ayrıcalıkları atamak isteyebileceğinizden, bu adımın her zaman zorunlu olmadığını unutmayın. Yeni bir kullanıcı oluşturmak istemiyorsanız bu adımı atlayabilirsiniz.

MySQL Databases sayfasında, veri tabanı kullanıcıları sekmesini bulana kadar aşağı kaydırın ve istediğiniz kullanıcı adı ve parolayla kullanıcıyı oluşturun. Çoğu durumda, kullanıcı adlarının önüne hosting hesabı adınızın ekleneceğini unutmayın. Şifreler için çoğu hosting sağlayıcısı, şifrenizin güvende olduğundan emin olmak için bir şifre üretici düğmesi sunar. Veri tabanını WordPress’e bağlarken bu kimlik bilgilerine ihtiyacınız olacağından kullanıcı adını ve parolayı kopyalayıp kaydettiğinizden emin olun.

4. Kullanıcıyı veri tabanına atama

Bir veri tabanı kullanıcınız olduğunda, onu bir veri tabanına atayabilirsiniz. Böylece veri tabanı bilgilerini okuyabilir, yazabilir ve değiştirebilir.

5. Veri tabanı kullanıcısı için tüm ayrıcalıkları etkinleştirin

“Add – Ekle” butonuna tıkladığınızda, kullanıcı veritabanına eklenecek ve kullanıcı ayrıcalıkları (user privileges page) sayfasına yönlendirileceksiniz. Kullanıcının veri tabanınızla etkileşime girebilmesi için TÜM ayrıcalıkları (ALL privileges) etkinleştirmeniz gerekir.

6. Veri tabanını WordPress’e bağlama

Yukarıdaki adımı tamamladıktan sonra veri tabanınız WordPress’e bağlanmaya hazırdır.

Bunu, wp-config.php dosyasına veritabanı adını, veritabanı kullanıcı kimlik bilgilerini ekleyerek yapabilirsiniz.

Bu dosyayı WordPress kurulumunuzun kök dizininde bulabilirsiniz. Bu dosyayı açın ve aşağıdaki satırları arayın:

// ** MySQL settings – You can get this info from your web host ** //

/** The name of the database for WordPress */

define(‘DB_NAME’, ‘database_name’);

/** MySQL database username */

define(‘DB_USER’, ‘database_username’);

/** MySQL database password */

define(‘DB_PASSWORD’, ‘database_user_password’);

/** MySQL hostname */

define(‘DB_HOST’, ‘localhost’);

/** Database Charset to use in creating database tables. */

define(‘DB_CHARSET’, ‘utf8mb4’);

/** The Database Collate type. Don’t change this if in doubt. */

define(‘DB_COLLATE’, ”);

İlgili ayrıntıları az önce oluşturduklarınızla değiştirin.

database_name kısmını MySQL veritabanıyla, database_username adını oluşturduğunuz kullanıcının adıyla ve database_user_password önceki adımda oluşturduğunuz kullanıcı parolasıyla değiştirin.

Bunu yaptıktan sonra, WordPress kurulumunuza erişebilmeli ve temel web sitesi bilgilerini (web sitesi başlığı, etiket satırı, yönetici kullanıcı adı ve şifresi) eklemelisiniz.

Bu ayrıntıları ekledikten ve “Install WordPress – WordPress Yükle” butonuna tıkladıktan sonra web siteniz kullanıma hazırdır.

Yukarıda sizinle MySQL’in ne olduğunu, ne işe yaradığını, nasıl yükseltileceğini vb. MySQL ile ilgili merak edebileceğiniz birçok şeyi paylaştık. MySQL ile ilgili merak ettiğiniz farklı şeyler varsa, yorum bölümünde bize yazın. İçeriğimizi geliştirmek için deneyimlerinizi ve önerilerinizi paylaşmayı unutmayın.