WordPress veritabanı için nihai kılavuz

Yayınlanan: 2022-02-09

Özünde, WordPress bir CMS'dir (İçerik Yönetim Sistemi). İçeriği yönetmek için, onu depolayabilmesi gerekir. WordPress bunu klasörler, dosyalar ve bir veritabanı aracılığıyla yapar. WordPress dosya sistemini daha önce ayrı bir makalede ele almıştık; bu sefer veritabanına odaklanacağız.

Bu yazıda, WordPress veritabanına, yapısına ve her bir alanın nasıl çalıştığına bakacağız. Ayrıca MySQL hakkında kısa bir tarih dersi ekledik. İpucu – MySQL'deki My, sizin olduğu anlamına gelmez; Benimki gerçek bir insan, ama kim? - Öğrenmek için okumaya devam edin.

İçindekiler

  • SQL, MySQL ve MariaDB'nin (çok) kısa bir geçmişi
  • WordPress veritabanına nasıl erişilir
    • phpMyAdmin
    • Plesk/cPanel
    • SSH/MySQL/MariaDB istemcisi
    • WordPress Eklentileri
  • WordPress veritabanı yapısı
    • tablo yapısı
      • wp_commentmeta
      • wp_comments
      • wp_links
      • wp_options
      • wp_postmeta
      • wp_posts
      • wp_terms
      • wp_termmeta
      • wp_term_relationships
      • wp_term_taxonomy
      • wp_usermeta
      • wp_users

SQL, MySQL ve MariaDB'nin (çok) kısa bir geçmişi

WordPress, MySQL adlı bir RDBMS kullanır. Teknik olarak MySQL tabanlıdır, çünkü giderek MySQL yerine MariaDB kullanılmaktadır. SQL, Structured Query Language (Yapılandırılmış Sorgu Dili) anlamına gelir ve veritabanının kendisi değil, veritabanıyla etkileşim kurmak için kullandığımız dildir.

MySQL, bugün bildiğimiz gibi internetin büyümesinde önemli bir rol oynamıştır. İlk olarak 1995 yılında Microsoft ve Oracle tarafından sunulan ürünlere alternatif olarak tanıtılan bu sistem, kısa sürede altın RDBMS standardı haline geldi.

MySQL'in geçmişi renklidir, Sun Microsystems ve ardından Oracle tarafından satın alınmıştır (Oracle, Sun Microsystems ve MySQL'i onunla birlikte satın almıştır).

MySQL'in Oracle tarafından satın alınmasına yanıt olarak, MySQL'in orijinal yaratıcısı Monty Widenius, MySQL'i kızı Maria'nın adını verdiği MariaDB'ye devretti. (İlginç bir şekilde, MySQL, Monty'nin diğer kızı - My'den sonra adlandırılmıştır). Zamanla, MariaDB ve MySQL arasındaki farklar gelişti; ancak ikisi, WordPress veritabanları da dahil olmak üzere birçok senaryoda birbirinin yerine kullanılabilir.

Aslında, birçok durumda MariaDB, MySQL'in bir yedek olarak kabul edilir. Bu, MySQL'i kaldırabileceğiniz, bunun yerine MariaDB'yi kurabileceğiniz ve hiçbir şey değişmemiş gibi çalışmaya devam edebileceğiniz anlamına gelir. Bununla birlikte, MariaDB bazı durumlarda performans iyileştirmeleri sunabilir ve ayrıca örneğin depolama motorlarıyla daha geniş uyumluluk sunar.

MySQL'in ücretsiz kaldığını ve çift lisanslı bir sistem altında yayınlandığını belirtmek önemlidir. Çoğu durumda MySQL, MySQL veya MariaDB olan veritabanlarına atıfta bulunmak için kullanılır.

WordPress veritabanına nasıl erişilir

WordPress veritabanına bağlanma söz konusu olduğunda kullanılabilecek birkaç farklı seçenek vardır. Kullanabileceğiniz yöntem veya yöntemler büyük ölçüde kullandığınız WordPress barındırma türüne bağlı olacaktır. Sunucunuzun nasıl yapılandırıldığından emin değilseniz barındırma sağlayıcınız veya sistem yöneticinizle görüşün. Her iki durumda da seçenekler şunları içerebilir;

phpMyAdmin

phpMyAdmin, web tabanlı bir GUI aracılığıyla veritabanına bağlanmamıza izin verdiği için favori bir araçtır. phpMyAdmin'in veritabanını barındıran aynı sunucuya yüklenmesi gerekir ve birçok barındırma sağlayıcısı phpMyAdmin'i kutudan çıkar çıkmaz sunar.

Plesk/cPanel

Plesk ve cPanel, benzer bir işleve hizmet eden iki kontrol paneli platformudur - sunucu yönetimini kolaylaştıran bir kullanıcı arabirimi. Elbette, destekledikleri teknolojiler ve İşletim Sistemleri de dahil olmak üzere bazı önemli farklılıklar vardır. Her iki durumda da, biraz farklı şekillerde de olsa veritabanlarına erişmemize izin veriyorlar.

SSH/MySQL/mariaDB istemcisi

SSH, bir GUI yerine bir CLI (Komut Satırı Arayüzü) sunan bir veritabanına bağlanmanın daha az kullanıcı dostu bir yoludur. Bu nedenle, SQL komutlarının daha derinlemesine anlaşılması önerilir. SSH'nin, bağlanmadan önce veritabanını barındıran aynı sunucuda açık bir şekilde kurulması gerekir.

Eklentiler

WordPress veritabanınıza erişmek için WordPress eklentilerini de kullanabilirsiniz. Bir eklenti kullanarak veritabanına doğrudan WordPress yönetici konsolunuzdan erişebilirsiniz. Burada, saygın bir tedarikçiden bir eklenti seçtiğinizden emin olmanız ve verilerinizi güvende tutmak için geçerli tüm en iyi uygulamaları izlemeniz gerekir. Hangi eklentiyi seçeceğinizden emin değilseniz, WordPress web siteniz için en iyi eklentileri nasıl seçeceğinizle ilgili kılavuzumuzu okuyun.

WordPress veritabanı yapısı

WordPress veritabanı 12 tablodan oluşur. Her tablo varsayılan olarak wp_ öneki ile başlar; ancak bu, ilk kurulum ve yapılandırma işlemi sırasında değiştirilebilir. Özellikle aynı sunucuda birden fazla kurulum yapmayı planlıyorsanız veya zaten varsa, WordPress güvenlik nedenleriyle genellikle öneki değiştirmeniz önerilir.

WordPress veritabanını oluşturan 12 tablo aşağıdaki gibidir (alfabetik sırayla listelenmiştir):

  • wp_commentmeta
  • wp_comments
  • wp_links
  • wp_options
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_termmeta
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_usermeta
  • wp_users

Şimdi her tabloyu tek tek inceleyeceğiz ve hangi verileri depoladığına ve iç yapısına bakacağız.

tablo yapısı

Her tablonun ayrıntılarına girmeden önce, nasıl yapılandırıldığına biraz zaman ayırmaya değer. Veritabanı belgelerine aşina değilseniz, bu bölüm size bir sonraki bölümde faydalı bulacağınız bir hızlandırılmış kurs verecektir. Öte yandan, SQL tablolarına oldukça aşinaysanız, ileri atlamaktan çekinmeyin.

  • Alan adı – Bu, SQL tablosunda bulacağınız alanın adıdır.
  • Açıklama - Bunu, alanın ne tür verileri tuttuğunu anlamanıza yardımcı olmak için koyduk.
  • Tür – Bu, alanın kabul ettiği veri türüdür. Parantez içindeki sayılar, girebileceğimiz kabul edilebilir karakter sayısındaki katı sınırı temsil eder.
  • Null – şu anda bu alanın neden kullanıldığı belli değil
  • Anahtar – Bu bize girişin bir anahtar olup olmadığını söyler. Aşağıdakiler dahil olmak üzere farklı anahtar türleri vardır:
    • Öncelik
    • Birincil (Bölüm)
    • dizin
    • Dizin (Bölüm)
    • Eşsiz
    • çoklu
  • Varsayılan – Girişin varsayılan bir değeri varsa, varsayılan değer burada listelenir
  • Notlar – Herhangi bir ek not

wp_commentmeta

wp_commentsmeta tablosu, yorumlarla ilgili meta verileri depolar. Yorumlar, wp_comments tablosunda ayrı olarak saklanır. Tabloda aşağıdaki alanlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
meta_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20)imzasız Öncelik
yorum_kimliği Bu, wp_comments tablosunda bulunan meta verilerin ilgili olduğu yorumun kimliğidir. bigint(20)imzasız dizin 0
Meta Anahtarı Bu, girişin ait olduğu meta veri türünü tanımlar. varchar(255) Evet dizin Boş
meta_değer Bu gerçek meta veridir uzun metin Evet Boş

wp_comments

wp_comments tablosu, gönderi yorumlarını saklar. Yorumlarla ilgili meta veriler, wp_commentmeta tablosunda saklanır. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
yorum_kimliği Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar büyük(20) Öncelik NA
yorum_post_ID Bu, wp_posts tablosunda bulunan yorumun yazıldığı gönderinin kimliğidir. büyük(20) dizin 0
yorum_yazar Bu yorumu yazan yazarın adı minik metin
yorum_yetkili_e-posta Bu, yorumu yazan yazarın e-posta adresidir. varchar(100) dizin
yorum_yetkili_url Bu, yorumu yazan yazarın web sitesi URL'sidir. varchar(200)
yorum_yetkili_IP Bu, yorumu yazan yazarın IP adresidir. varchar(100)
yorum_tarihi Bu, yorumun yayınlandığı tarih ve saattir. tarih saat 0000-00-00 00:00:00
yorum_tarihi_gmt Bu, yorumun gönderildiği GMT (Greenwich Meridian Time) tarih ve saatidir. tarih saat İndeks ve İndeks Pt2 0000-00-00 00:00:00
yorum_içerik Geriye kalan gerçek yorum bu metin
yorum_karma Bu, yorum yönetimi amacıyla eklentiler tarafından kullanılabilir int(11)
yorum_onaylı Bu, yorumun onaylanıp onaylanmadığını gösterir. varchar(20) Dizin Bölüm 1 0
yorum_agent Yorumun yayınlandığı yer burası varchar(255)
yorum_türü Bu, bırakılan yorum türüdür varchar(20)
yorum_parenti Yorum bir yanıtsa, bu alan üst yorumu belirtir bigint(20)imzasız dizin 0
Kullanıcı kimliği Yorum yapan bir kullanıcı kayıtlıysa, bu, wp_users içinde mevcut olan kimlikleri olacaktır. bigint(20)imzasız 0

wp_links

Bu tablo başlangıçta WordPress 3.5'ten itibaren bırakılan bir özellik olan blogroll'ları desteklemek için oluşturuldu. Geriye dönük uyumluluk için saklanır ancak artık kullanımda değildir. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
link_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint (20) imzasız Öncelik
bağlantı adresi Bu, bağlantının URL'sidir varchar(255)
bağlantı_adı
linkin adı bu varchar(255)
link_image Bu, bağlantıyla ilgili resmin URL'sidir varchar(255)
Bağlantı hedefi Bu, bağlantının hedef çerçevesidir varchar(25)
link_desciption Bu, bağlantının açıklamasıdır varchar(255)
link_visible Bu bize bağlantının herkese açık olarak gösterilip gösterilmediğini söyler varchar(20) dizin Y
link_sahibi Bu, wp_users içinde mevcut olan bağlantıyı oluşturan kullanıcının kullanıcı kimliğidir. bigint (20) imzasız 1
link_rating Bu, bağlantının derecelendirmesidir int(11) 0
link_updated Bu, bağlantının güncellendiği tarih ve saattir tarih saat 0000-00-00 00:00:00
link_rel Bu bağlantının ilişkisi varchar(255)
link_notes Bu bağlantıyla ilgili notlar orta metin
link_rss Bu, bağlantının rss besleme adresidir varchar(255)

wp_options

Yönetici konsolu aracılığıyla yapılandırılan WordPress ayarları burada saklanır. Eklentiler ve temalar, aşağıdaki ekran görüntüsünde gösterildiği gibi, genellikle ayar bilgilerini de burada saklar. Burada, kendi Web Sitesi Dosya Değişiklikleri Monitörümüzün tarama sıklığı seçeneğinin günlük olarak ayarlandığını görebiliriz. WordPress Dosya Değişiklikleri Tarama sıklığını izleyin

Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
seçenek_kimliği Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar. bigint(20) imzasız Öncelik
seçenek_adı Bu, seçeneğin/ayarın adıdır. varchar(64) Eşsiz
Opsiyon değeri Bu, saklanan ayarın değeridir uzun metin
otomatik yükleme Bu ayar, wp_load_alloptions()'a seçeneğin otomatik olarak yüklenmesi gerekip gerekmediğini söyler varchar(20) dizin evet

wp_postmeta

Her gönderiye eşlik eden gönderiler meta verileri burada saklanır. Meta veriler, ekli dosyaları, küçük resimleri, istenen gönderi bilgisini ve bu tür diğer bilgileri içerebilir. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
meta_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Öncelik
Alan adı
post_id

Bu, meta verilerin ilişkilendirildiği gönderinin wp_posts'ta mevcut kimliğidir. bigint(20) imzasız dizin 0
Meta Anahtarı Her gönderi birden fazla meta veriye sahip olabileceğinden, bu, meta verileri tanımlayan bir dizin anahtarıdır. varchar(255) Evet dizin Boş
meta_değer Bu gerçek meta veridir uzun metin Evet Boş

wp_posts

wp_posts tablosu önemli bir tablodur ve WordPress verilerinin özünü içerir. Her WordPress yeni kurulumunda bulunan varsayılan örnek sayfayı gösteren aşağıdaki örnekte görüldüğü gibi, gerçek gönderileri, sayfaları ve gezinme menüsü öğelerini tutar. Her yeni WordPress kurulumuna dahil edilen örnek sayfa

Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
İD Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Birincil ve Dizin (Bölüm 4)
post_author Bu, gönderiyi wp_users içinde mevcut olarak yazan yazarın kimliğidir. bigint(20) imzasız dizin 0
Posta tarihi Bu, gönderinin oluşturulduğu tarih ve saattir tarih saat Dizin (Bölüm 3) 0000-00-00 00:00:00
post_date_gmt Bu, gönderinin oluşturulduğu GMT (Greenwich Ortalama Saati) tarih ve saatidir. tarih saat 0000-00-00 00:00:00
Mesaj İçeriği Yazının asıl içeriği bu uzun metin
yazı başlığı yazının başlığı bu metin
post_excerpt Bu yazıdan bir alıntıdır metin
post_status Yazının durumu bu varchar(20) Dizin (Bölüm 2) Yayınla
yorum_durumu Bu bize gönderideki yorumlara izin verilip verilmediğini söyler varchar(20) açık
ping_status Bu bize ping ve geri izlemelere izin verilip verilmediğini söyler. varchar(20) açık
post_password Gönderiler, burada saklanan herhangi bir geçerli parola ile parola korumalı olabilir varchar(20)
posta adı Bu, gönderi başlığının URL bilgisidir varchar(200) dizin
to_ping Bu, gönderi her güncellendiğinde WordPress'in pingback göndermesi gereken URL'lerin bir listesidir. metin
ping attı Bu, WordPress'in güncellendiğinde pingback yaptığı URL'lerin bir listesidir. metin
post_modified Bu, gönderinin son değişikliğinin tarihi ve saatidir tarih saat 0000-00-00 00:00:00
post_modified_gmt Bu, gönderinin son değişikliğinin GMT tarihi ve saatidir. tarih saat 0000-00-00 00:00:00
post_content_filtered Bu, genellikle eklentiler tarafından önbelleğe alma amacıyla kullanılan filtrelenmiş bir post_content sürümüdür. uzun metin
post_parent Gönderi bir revizyon veya ek olduğunda, bu ebeveyn-alt ilişkisini oluşturur bigint(20) imzasız dizin 0
rehber Bu, gönderinin Global Benzersiz Tanımlayıcısıdır (GUID). varchar(255)
menu_order Bu, sayfaların ve gönderilemeyen öğelerin göründüğü sipariş numarasıdır. int(11) 0
yazı tipi Bu, içerik türünü tanımlar varchar(20) Dizin (Bölüm 1) İleti
post_mime_type Bu, gönderi eklerinin mime türüdür varchar(100)
Yorum sayısı Bu, yorumların, geri izlemelerin ve geri pinglerin toplam sayısıdır. büyük(20) 0

wp_terms

Terimler, WordPress'teki nesneleri sınıflandırmak için kullanılan sınıflandırma nesneleridir. Örneğin, gönderilerde kullanılan kategoriler ve etiketler terim türleridir. Bu tablo, WordPress'te kullanılan tüm farklı terim türlerini içerir. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
term_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Öncelik
isim Bu terimin adı varchar(200) dizin
sümüklü böcek Bu terimin sümüklüböcekidir varchar(200) çoklu
term_group Bu, temaların ve eklentilerin terimleri gruplamak için kullanabileceği bir takma addır. büyük(10) 0

wp_termmeta

Bu tablo, wp_terms içinde bulunan terimlerle ilişkili meta verileri depolar. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
meta_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Öncelik
term_id Bu, meta verilerin ilgili olduğu terimin wp_terms'de mevcut olan kimliğidir. bigint(20) imzasız dizin 0
Meta Anahtarı Bu, meta veri terimi için bir tanımlayıcı anahtardır. varchar(255) Evet dizin BOŞ
meta_değer Bu gerçek meta veridir uzun metin Evet BOŞ

wp_term_relationships

Bu tablo, gönderiler ve taksonomiler arasındaki ilişkileri korur. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
Nesne Kimliği Bu, wp_posts'ta bulunan gönderinin kimliğidir. bigint(20) imzasız Birincil (Bölüm 1) 0
term_taxonomy_id Bu, wp_term_taxonomy içinde mevcut olan taksonomi teriminin kimliğidir. bigint(20) imzasız Birincil (Bölüm 2) ve Dizin 0
term_order Bu terimin sırası int(11) 0

wp_term_taxonomy

Bu tablo, terimlerin taksonomilerini ve dolayısıyla kullanılabilecekleri bir bağlamı verir. Örneğin, veritabanı terimini bir gönderi kategorisi ve bir ürün kategorisi olarak kullanabiliriz (veritabanı hizmetleri sattığımızı varsayarsak). Bu durumda, posta kategorisi ve ürün kategorisi terim taksonomileridir. Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
term_taxonomy_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Öncelik
term_id Bu, wp_terms'de mevcut olan terimin kimliğidir. bigint(20) imzasız Benzersiz (Bölüm 1) 0
sınıflandırma Bu taksonominin sümüklü böcekleri varchar(32) Benzersiz (Bölüm 2) ve Dizin
tanım Bu taksonominin bir açıklamasıdır uzun metin
ebeveyn Taksonomi bir çocuk ise bu, ana sınıflandırmanın kimliğidir. bigint(20) imzasız 0
saymak Bu, bu sınıflandırmaya atanan nesnelerin sayısıdır. büyük(20) 0

wp_usermeta

Bu tablo, wp_users tablosunda bulunmayan ek kullanıcı verilerini depolar. WordPress'in kendisi, eklentiler veya temalar bu tablodan yararlanabilir.

Kullanıcı meta verilerine bir örnek, kullanıcı takma adıdır. WordPress varsayılan olarak bu alanı içerse de, aşağıda gösterildiği gibi yine de meta verilerin bir parçasıdır. Başka bir örnek WooCommerce'dir; sevkıyat adresi gibi müşteri bilgilerini depolamak için bu tabloyu kullanan bir e-ticaret eklentisi.

Kullanıcı takma adı meta verileri

Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
umeta_id Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Öncelik
Kullanıcı kimliği Bu, wp_users içinde bulunan bilgilerin ilgili olduğu kullanıcının kimliğidir. bigint(20) imzasız dizin 0
Meta Anahtarı Bu, meta girişi için bir anahtar tanımlayıcıdır varchar(255) evet dizin Boş
meta_değer Bu gerçek meta veridir uzun metin Evet Boş

wp_users

WordPress kullanıcılarının bilgileri burada saklanır. Kullanıcıların WordPress ekosisteminin ayrılmaz bir parçası olması nedeniyle bu tablo çok önemlidir.

Tablo, aşağıdaki örnekte gösterildiği gibi yalnızca her kullanıcı için temel bilgileri depolar. Diğer tüm bilgiler wp_usermeta tablosunda saklanır.

WordPress kullanıcıları diğer meta bilgileri

Tabloda aşağıdaki sütunlar bulunur:

Sütun adı Tanım Tip Boş Anahtar Varsayılan
İD Bu, giriş için benzersiz bir kimliktir. Otomatik olarak artar bigint(20) imzasız Öncelik
Kullanıcı Girişi Bu kullanıcının kullanıcı adıdır varchar(60) dizin
Kullanıcı geçiş Bu kullanıcının şifresi varchar(64)
user_nicename Bu, kullanıcının görünen adıdır varchar(50) dizin
Kullanıcı e-postası Bu, kullanıcının e-posta adresidir varchar(100)
user_url Bu, kullanıcının URL'sidir (ör. web sitesi) varchar(100)
user_registered Bu, kullanıcının kayıtlı olduğu tarih ve saattir. tarih saat 0000-00-00 00:00:00
user_activation_key Bu, kullanıcının parolasını sıfırlamak için kullanılan etkinleştirme anahtarıdır. varchar(60)
Kullanıcı durumu Bu artık WordPress 3.0'dan itibaren kullanılmamaktadır, ancak kullanıcının spam olup olmadığını belirtmek için kullanılır. int(11) 0
ekran adı Bu, kullanıcının genel görünen adıdır varchar(250)

WordPress veritabanına aşina olun

Veritabanları, tecrübesi olmayanlar için oldukça korkutucu olabilir – sonuçta, WordPress'in çalışması için gereken tüm verileri tutarlar. Buradaki bir yanlış adımın siteyi çökertebileceği doğru olsa da, bunun sizi korkutmasına izin vermeyin. Sonuçta, WordPress veritabanında yolunuzu bilmek, gerekli olması durumunda sorun giderme çabalarınızı büyük ölçüde kolaylaştırabilir.

Bir test veya hazırlama ortamı kurmak, web sitenizi çevrimdışına alma riskine girmeden deneme yapmakta özgür olduğunuz güvenli bir alan sağlayabilir. Bilgisayarınızda ücretsiz olarak bir XAMPP hazırlama ortamı bile kurabilirsiniz – size WordPress veritabanında uzmanlaşmak için ihtiyacınız olan her şeyi sağlar.