{"id":866,"date":"2026-09-21T10:03:37","date_gmt":"2026-09-21T10:03:37","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/?p=866"},"modified":"2026-09-21T09:40:37","modified_gmt":"2026-09-21T09:40:37","slug":"wordpress-veritabani-baglanti-hatasi-nasil-cozulur","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/wordpress-veritabani-baglanti-hatasi-nasil-cozulur\/","title":{"rendered":"WordPress Veritaban\u0131 Ba\u011flant\u0131 Hatas\u0131 Nas\u0131l \u00c7\u00f6z\u00fcl\u00fcr?"},"content":{"rendered":"<div class=\"aiw-summary\" id=\"aiw-ozet\">\n<p class=\"aiw-summary-title\">H\u0131zl\u0131 \u00d6zet &#8211; WordPress Veritaban\u0131 Ba\u011flant\u0131 Hatas\u0131<\/p>\n<p>Bu hata, WordPress&#039;in MySQL veya MariaDB sunucusuna ba\u011flanamad\u0131\u011f\u0131n\u0131 ya da gerekli veritaban\u0131n\u0131 kullanamad\u0131\u011f\u0131n\u0131 g\u00f6sterir. Kontrolleri uygulama dosyas\u0131ndan ba\u015flay\u0131p servis, yetki, a\u011f ve kaynak katmanlar\u0131na do\u011fru ilerletin.<\/p>\n<ul>\n<li><strong>Dosyay\u0131 kontrol edin<\/strong> \u2014 wp-config.php i\u00e7indeki DB_NAME, DB_USER, DB_PASSWORD ve DB_HOST de\u011ferlerini ger\u00e7ek bilgilerle kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/li>\n<li><strong>Servisi inceleyin<\/strong> \u2014 mysql veya mariadb servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve journal kay\u0131tlar\u0131nda ba\u015flang\u0131\u00e7 hatas\u0131 bulunmad\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/li>\n<li><strong>CLI ba\u011flant\u0131s\u0131 kurun<\/strong> \u2014 Ayn\u0131 host, kullan\u0131c\u0131 ve veritaban\u0131 ad\u0131yla mysql komutu \u00fczerinden do\u011frudan ba\u011flant\u0131 testi yap\u0131n.<\/li>\n<li><strong>Yetkiyi do\u011frulay\u0131n<\/strong> \u2014 Kullan\u0131c\u0131n\u0131n do\u011fru host kayd\u0131na ve yaln\u0131zca gerekli WordPress veritaban\u0131na eri\u015fim iznine sahip oldu\u011funu kontrol edin.<\/li>\n<li><strong>A\u011f\u0131 \u00f6l\u00e7\u00fcn<\/strong> \u2014 Uzak veritaban\u0131nda 3306\/TCP, bind-address, DNS ve firewall ayarlar\u0131n\u0131 birlikte inceleyin.<\/li>\n<li><strong>Yedek al\u0131n<\/strong> \u2014 Tablo onar\u0131m\u0131 veya kurtarma i\u015fleminden \u00f6nce mysqldump al\u0131n ve geri y\u00fckleme provas\u0131n\u0131 ayr\u0131 ortamda yap\u0131n.<\/li>\n<\/ul>\n<\/div>\n<p class=\"aiw-lead\">WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131; yanl\u0131\u015f DB_HOST, hatal\u0131 kullan\u0131c\u0131 parolas\u0131, durmu\u015f MySQL servisi, bozuk socket, yetersiz yetki veya dolu disk nedeniyle olu\u015fabilir. \u00d6nce wp-config.php de\u011ferlerini do\u011frulay\u0131n, ard\u0131ndan MySQL servisini ve ayn\u0131 bilgilerle komut sat\u0131r\u0131 ba\u011flant\u0131s\u0131n\u0131 test edin. B\u00f6ylece sorunun uygulamada m\u0131, veritaban\u0131nda m\u0131 oldu\u011funu daraltabilirsiniz.<\/p>\n<div class=\"aiw-toc\" style=\"border:1px solid #dbe3ea;border-radius:8px;padding:16px 20px;margin:0 0 28px\">\n<p class=\"aiw-toc-head\"><strong>\u0130\u00e7indekiler<\/strong><span class=\"aiw-toc-meta\"> \u00b7 11 dk okuma<\/span><\/p>\n<ol style=\"margin:10px 0 0;padding-left:22px\">\n<li><a href=\"#wordpress-veritabani-baglanti-hatasi-neden-gorunur\">WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131 neden g\u00f6r\u00fcn\u00fcr?<\/a><\/li>\n<li><a href=\"#once-hata-mesajini-ve-erisim-durumunu-dogrulayin\">\u00d6nce hata mesaj\u0131n\u0131 ve eri\u015fim durumunu do\u011frulay\u0131n<\/a><\/li>\n<li><a href=\"#wp-config-php-icindeki-dort-degeri-kontrol-edin\">wp-config.php i\u00e7indeki d\u00f6rt de\u011feri kontrol edin<\/a><\/li>\n<li><a href=\"#mysql-veya-mariadb-servisi-calisiyor-mu\">MySQL veya MariaDB servisi \u00e7al\u0131\u015f\u0131yor mu?<\/a><\/li>\n<li><a href=\"#komut-satirindan-baglantiyi-test-etmek-neden-onemli\">Komut sat\u0131r\u0131ndan ba\u011flant\u0131y\u0131 test etmek neden \u00f6nemli?<\/a><\/li>\n<li><a href=\"#mysql-kullanicisinin-yetkilerini-ve-host-bilgisini-duzeltin\">MySQL kullan\u0131c\u0131s\u0131n\u0131n yetkilerini ve host bilgisini d\u00fczeltin<\/a><\/li>\n<li><a href=\"#baglanti-hala-kurulmuyorsa-hangi-katmanlari-incelemelisiniz\">Ba\u011flant\u0131 h\u00e2l\u00e2 kurulmuyorsa hangi katmanlar\u0131 incelemelisiniz?<\/a><\/li>\n<li><a href=\"#veritabani-bozulmasi-veya-bakim-gereksinimi-nasil-anlasilir\">Veritaban\u0131 bozulmas\u0131 veya bak\u0131m gereksinimi nas\u0131l anla\u015f\u0131l\u0131r?<\/a><\/li>\n<li><a href=\"#onbellek-ve-eklentiler-hata-ekranini-etkileyebilir-mi\">\u00d6nbellek ve eklentiler hata ekran\u0131n\u0131 etkileyebilir mi?<\/a><\/li>\n<li><a href=\"#tekrar-yasanmamasi-icin-uretim-kontrolu\">Tekrar ya\u015fanmamas\u0131 i\u00e7in \u00fcretim kontrol\u00fc<\/a><\/li>\n<li><a href=\"#duzeltme-oncesi-kontrol-listesi\">D\u00fczeltme \u00d6ncesi Kontrol Listesi<\/a><\/li>\n<li><a href=\"#sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/a><\/li>\n<li><a href=\"#kaynaklar\">Kaynaklar<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"wordpress-veritabani-baglanti-hatasi-neden-gorunur\">WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131 neden g\u00f6r\u00fcn\u00fcr?<\/h2>\n<p>WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131, uygulaman\u0131n MySQL veya MariaDB sunucusuna ba\u011flanamad\u0131\u011f\u0131 ya da ba\u011fland\u0131ktan sonra gerekli veritaban\u0131n\u0131 kullanamad\u0131\u011f\u0131 anlam\u0131na gelir. \u0130lk kontrol <code>wp-config.php<\/code> i\u00e7indeki d\u00f6rt de\u011ferdir: veritaban\u0131 ad\u0131, kullan\u0131c\u0131 ad\u0131, parola ve sunucu adresi. Ard\u0131ndan veritaban\u0131 servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131, kullan\u0131c\u0131n\u0131n yetkili oldu\u011fu ve sunucunun eri\u015filebilir oldu\u011fu do\u011frulan\u0131r.<\/p>\n<p>Hata ekran\u0131ndaki <code>Error establishing a database connection<\/code> mesaj\u0131 tek ba\u015f\u0131na nedeni g\u00f6stermez. Yanl\u0131\u015f parola, durmu\u015f servis, dolu disk, hatal\u0131 socket yolu, DNS problemi veya MySQL ba\u011flant\u0131 s\u0131n\u0131r\u0131na ula\u015f\u0131lmas\u0131 ayn\u0131 ekrana \u00e7\u0131kabilir. Rastgele parola de\u011fi\u015ftirmek ya da sunucuyu yeniden ba\u015flatmak yerine katman katman ilerlemek daha g\u00fcvenlidir.<\/p>\n<p>WordPress&#8217;in dosya yap\u0131s\u0131 ve temel kurulum ad\u0131mlar\u0131 i\u00e7in <a href=\"https:\/\/www.vps.tc\/blog\/tr\/vpste-wordpress-kurulumu-adim-adim\/\">VPS&#8217;te WordPress Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/a> i\u00e7eri\u011findeki yap\u0131land\u0131rma b\u00f6l\u00fcm\u00fcne bakabilirsiniz. Buradaki kontroller, \u00e7al\u0131\u015fan bir kurulumda ba\u011flant\u0131 kesildi\u011finde uygulan\u0131r.<\/p>\n<h2 id=\"once-hata-mesajini-ve-erisim-durumunu-dogrulayin\">\u00d6nce hata mesaj\u0131n\u0131 ve eri\u015fim durumunu do\u011frulay\u0131n<\/h2>\n<p>Taray\u0131c\u0131daki genel hata ekran\u0131, y\u00f6netim panelinin a\u00e7\u0131lmamas\u0131 ve HTTP 500 yan\u0131t\u0131 birbirine benzeyebilir. \u00d6nce web sunucusunun cevap verip vermedi\u011fini, ard\u0131ndan PHP&#8217;nin ve veritaban\u0131n\u0131n durumunu ayr\u0131 ayr\u0131 inceleyin.<\/p>\n<pre><code>curl -I https:\/\/example.com<\/code><\/pre>\n<p>Yan\u0131tta <code>500 Internal Server Error<\/code> g\u00f6rmeniz, iste\u011fin web sunucusuna ula\u015ft\u0131\u011f\u0131n\u0131 fakat uygulama katman\u0131nda sorun ya\u015fand\u0131\u011f\u0131n\u0131 g\u00f6sterir. <code>502 Bad Gateway<\/code> ise Nginx ile PHP-FPM veya ba\u015fka bir upstream aras\u0131ndaki ileti\u015fime de bak\u0131lmas\u0131 gerekti\u011fi anlam\u0131na gelir. Bu durumda yaln\u0131zca MySQL&#8217;e odaklanmay\u0131n.<\/p>\n<p>Uygulama loglar\u0131 da\u011f\u0131t\u0131ma ve web sunucusuna g\u00f6re de\u011fi\u015fir. Nginx i\u00e7in genellikle <code>\/var\/log\/nginx\/error.log<\/code>, PHP-FPM i\u00e7in systemd journal, Apache i\u00e7inse <code>\/var\/log\/apache2\/error.log<\/code> kullan\u0131l\u0131r.<\/p>\n<pre><code>sudo journalctl -u php8.2-fpm --since \"30 minutes ago\" --no-pager\nsudo tail -n 50 \/var\/log\/nginx\/error.log<\/code><\/pre>\n<p><code>mysqli_real_connect(): (HY000\/1045)<\/code> ifadesi kimlik do\u011frulama veya yetki sorununa, <code>Can't connect to local server through socket<\/code> ifadesi servis ya da socket sorununa, <code>Too many connections<\/code> ise ba\u011flant\u0131 kapasitesine i\u015faret eder.<\/p>\n<p><strong>Hata t\u00fcr\u00fcn\u00fc belirleyin<\/strong> &#8211; Taray\u0131c\u0131 mesaj\u0131yla yetinmeden PHP-FPM, web sunucusu ve veritaban\u0131 loglar\u0131nda ayn\u0131 dakikadaki kay\u0131tlar\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<h2 id=\"wp-config-php-icindeki-dort-degeri-kontrol-edin\">wp-config.php i\u00e7indeki d\u00f6rt de\u011feri kontrol edin<\/h2>\n<p>WordPress ba\u011flant\u0131 bilgilerinin ana kayna\u011f\u0131 kurulum dizinindeki <code>wp-config.php<\/code> dosyas\u0131d\u0131r. Dosyan\u0131n konumu \u00e7o\u011fu kurulumda <code>\/var\/www\/html\/wp-config.php<\/code> veya alan ad\u0131na \u00f6zel bir web k\u00f6k\u00fcd\u00fcr. De\u011ferleri kopyalarken ba\u015fta ya da sonda bo\u015fluk b\u0131rakmay\u0131n.<\/p>\n<pre><code>define( 'DB_NAME', 'wordpress' );\ndefine( 'DB_USER', 'wp_user' );\ndefine( 'DB_PASSWORD', 'guclu-ve-dogru-parola' );\ndefine( 'DB_HOST', '127.0.0.1' );<\/code><\/pre>\n<p><code>DB_NAME<\/code> veritaban\u0131n\u0131n ad\u0131n\u0131, <code>DB_USER<\/code> MySQL kullan\u0131c\u0131s\u0131n\u0131, <code>DB_PASSWORD<\/code> parolay\u0131 ve <code>DB_HOST<\/code> ba\u011flant\u0131 hedefini belirtir. Dosyadaki t\u0131rnak i\u015faretlerini ve noktal\u0131 virg\u00fclleri koruyun.<\/p>\n<p><code>DB_HOST<\/code> her zaman yaln\u0131zca bir alan ad\u0131 de\u011fildir. Ayn\u0131 makinede TCP \u00fczerinden ba\u011flanmak i\u00e7in <code>127.0.0.1<\/code>, yerel Unix socket i\u00e7in <code>localhost<\/code> kullan\u0131labilir. MySQL istemcisi baz\u0131 sistemlerde <code>localhost<\/code> de\u011ferini TCP yerine socket ba\u011flant\u0131s\u0131 olarak yorumlar. Socket yolu yanl\u0131\u015fsa <code>127.0.0.1<\/code> ile test etmek, sorunun ba\u011flant\u0131 y\u00f6nteminden kaynaklan\u0131p kaynaklanmad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<pre><code>sudo grep -nE \"DB_(NAME|USER|HOST)\" \/var\/www\/html\/wp-config.php<\/code><\/pre>\n<p>Parolay\u0131 terminal \u00e7\u0131kt\u0131s\u0131na bast\u0131rmay\u0131n. Dosya izinlerini de kontrol edin; web sunucusu hesab\u0131n\u0131n dosyay\u0131 okuyabilmesi gerekir, fakat dosya herkes taraf\u0131ndan yaz\u0131labilir olmamal\u0131d\u0131r.<\/p>\n<pre><code>stat -c '%A %U:%G %n' \/var\/www\/html\/wp-config.php<\/code><\/pre>\n<p><code>chmod 777<\/code> bu problemi \u00e7\u00f6zmez. Yanl\u0131\u015f izin veya sahiplik varsa web sunucusu kullan\u0131c\u0131s\u0131n\u0131, da\u011f\u0131t\u0131m\u0131n varsay\u0131lanlar\u0131n\u0131 ve hosting panelinin olu\u015fturdu\u011fu yap\u0131y\u0131 birlikte do\u011frulay\u0131n.<\/p>\n<p><strong>Yap\u0131land\u0131rmay\u0131 d\u00fczeltin<\/strong> &#8211; <code>DB_NAME<\/code>, <code>DB_USER<\/code>, <code>DB_PASSWORD<\/code> ve <code>DB_HOST<\/code> de\u011ferlerini veritaban\u0131 sunucusundaki ger\u00e7ek bilgilerle e\u015fle\u015ftirin.<\/p>\n<h2 id=\"mysql-veya-mariadb-servisi-calisiyor-mu\">MySQL veya MariaDB servisi \u00e7al\u0131\u015f\u0131yor mu?<\/h2>\n<p>Sunucuda veritaban\u0131 servisi durmu\u015fsa WordPress&#8217;in do\u011fru kullan\u0131c\u0131 bilgileriyle ba\u011flanmas\u0131 m\u00fcmk\u00fcn de\u011fildir. Debian ve Ubuntu sistemlerinde servis ad\u0131 \u00e7o\u011funlukla <code>mysql<\/code>, baz\u0131 kurulumlarda <code>mariadb<\/code> olur.<\/p>\n<pre><code>sudo systemctl status mysql --no-pager\nsudo systemctl status mariadb --no-pager<\/code><\/pre>\n<p><code>Unit could not be found<\/code> mesaj\u0131, servisin \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 de\u011fil farkl\u0131 bir servis ad\u0131 kullan\u0131ld\u0131\u011f\u0131n\u0131 da g\u00f6sterebilir. Paketleri listeleyin:<\/p>\n<pre><code>systemctl list-units --type=service | grep -Ei 'mysql|maria'<\/code><\/pre>\n<p>Servis durmu\u015fsa \u00f6nce neden durdu\u011funu okuyun. <code>systemctl start<\/code> komutunu do\u011frudan \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce journal kayd\u0131na bakmak; bozuk tabloyu, disk dolulu\u011funu veya ba\u015far\u0131s\u0131z yap\u0131land\u0131rmay\u0131 ay\u0131rt etmeye yard\u0131m eder.<\/p>\n<pre><code>sudo journalctl -u mysql -b --no-pager -n 100\nsudo journalctl -u mariadb -b --no-pager -n 100<\/code><\/pre>\n<p>Disk dolulu\u011fu \u00f6zellikle \u00f6nemlidir. MySQL&#8217;in redo loglar\u0131, ge\u00e7ici tablolar\u0131 veya binary loglar\u0131 i\u00e7in bo\u015f alan kalmad\u0131\u011f\u0131nda servis a\u00e7\u0131lmayabilir.<\/p>\n<pre><code>df -h\nsudo du -sh \/var\/lib\/mysql \/var\/log\/mysql 2&gt;\/dev\/null<\/code><\/pre>\n<p>Journal kayd\u0131ndaki ilk hatay\u0131 bulun. Sadece son sat\u0131ra bakmak, bazen as\u0131l nedeni de\u011fil onun ard\u0131ndan olu\u015fan ikincil hatay\u0131 g\u00f6sterir.<\/p>\n<p><strong>Servisi te\u015fhis edin<\/strong> &#8211; MySQL&#8217;i yeniden ba\u015flatmadan \u00f6nce journal kay\u0131tlar\u0131n\u0131 ve <code>df -h<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 inceleyin.<\/p>\n<div class=\"aiw-callout aiw-callout-warn\">\n<p class=\"aiw-callout-label\">Dikkat<\/p>\n<p>DB_HOST de\u011ferini de\u011fi\u015ftirirken localhost ile 127.0.0.1 fark\u0131n\u0131 g\u00f6z ard\u0131 etmeyin. \u0130lk de\u011fer socket, ikinci de\u011fer TCP ba\u011flant\u0131s\u0131 kullanabilir; socket yolu hatal\u0131ysa k\u00fc\u00e7\u00fck bir de\u011fi\u015fiklik bile tan\u0131 koydurabilir.<\/p>\n<\/div>\n<h2 id=\"komut-satirindan-baglantiyi-test-etmek-neden-onemli\">Komut sat\u0131r\u0131ndan ba\u011flant\u0131y\u0131 test etmek neden \u00f6nemli?<\/h2>\n<p>WordPress, PHP ve veritaban\u0131 aras\u0131nda birden fazla katman vard\u0131r. Ayn\u0131 kullan\u0131c\u0131yla komut sat\u0131r\u0131ndan ba\u011flant\u0131 kurmak, sorunun WordPress yap\u0131land\u0131rmas\u0131nda m\u0131 yoksa MySQL taraf\u0131nda m\u0131 oldu\u011funu daralt\u0131r.<\/p>\n<pre><code>mysql -h 127.0.0.1 -u wp_user -p wordpress<\/code><\/pre>\n<p>Komut parola sorar; parolay\u0131 komut sat\u0131r\u0131na yazmay\u0131n. B\u00f6ylece shell ge\u00e7mi\u015finde kalma ve s\u00fcre\u00e7 listesinde g\u00f6r\u00fcnme riskini azalt\u0131rs\u0131n\u0131z. Ba\u011flant\u0131 ba\u015far\u0131l\u0131ysa <code>SELECT 1;<\/code> ve <code>SELECT DATABASE();<\/code> ile oturumun ger\u00e7ekten kullan\u0131labildi\u011fini kontrol edin.<\/p>\n<pre><code>SELECT 1;\nSELECT DATABASE();<\/code><\/pre>\n<p><code>ERROR 1045 (28000): Access denied<\/code> al\u0131rsan\u0131z kullan\u0131c\u0131-parola e\u015fle\u015fmesi, kaynak host veya yetkiler incelenmelidir. <code>ERROR 1049 (42000): Unknown database<\/code> veritaban\u0131 ad\u0131n\u0131n yanl\u0131\u015f oldu\u011funu g\u00f6sterir. <code>ERROR 2002<\/code> ise \u00e7o\u011funlukla socket, TCP veya servis eri\u015fimiyle ilgilidir.<\/p>\n<p>Uygulama sunucusu ile veritaban\u0131 farkl\u0131 makinelerdeyse <code>127.0.0.1<\/code> yaln\u0131zca uygulama sunucusunu ifade eder. Bu durumda <code>DB_HOST<\/code> veritaban\u0131 sunucusunun \u00f6zel IP adresi veya DNS ad\u0131 olmal\u0131; TCP portu varsay\u0131lan <code>3306<\/code> de\u011filse ba\u011flant\u0131 ayr\u0131ca belirtilmelidir.<\/p>\n<pre><code>mysql -h db.internal.example -P 3306 -u wp_user -p wordpress<\/code><\/pre>\n<p>Ba\u011flant\u0131 a\u011f \u00fczerinden kuruluyorsa firewall, MySQL&#8217;in <code>bind-address<\/code> ayar\u0131 ve kullan\u0131c\u0131 hesab\u0131n\u0131n izin verdi\u011fi kaynak host birlikte kontrol edilir. \u0130nternete a\u00e7\u0131k \u015fekilde <code>3306\/tcp<\/code> yay\u0131nlamak yerine \u00f6zel a\u011f veya VPN tercih edin.<\/p>\n<p><strong>Ayn\u0131 hesab\u0131 deneyin<\/strong> &#8211; WordPress&#8217;te kullan\u0131lan host, kullan\u0131c\u0131 ve veritaban\u0131 ad\u0131yla CLI ba\u011flant\u0131s\u0131n\u0131 ba\u015far\u0131yla kurmadan uygulama dosyalar\u0131n\u0131 de\u011fi\u015ftirmeyin.<\/p>\n<div class=\"aiw-callout aiw-callout-tip\">\n<p class=\"aiw-callout-label\">\u0130pucu<\/p>\n<p>Parolay\u0131 komut sat\u0131r\u0131na yazmay\u0131n; mysql -u wp_user -p bi\u00e7imini kullan\u0131n. B\u00f6ylece parola shell ge\u00e7mi\u015fine kaydolmaz ve s\u00fcre\u00e7 listesinde g\u00f6r\u00fcnme riski azal\u0131r.<\/p>\n<\/div>\n<h2 id=\"mysql-kullanicisinin-yetkilerini-ve-host-bilgisini-duzeltin\">MySQL kullan\u0131c\u0131s\u0131n\u0131n yetkilerini ve host bilgisini d\u00fczeltin<\/h2>\n<p>MySQL hesaplar\u0131 yaln\u0131zca kullan\u0131c\u0131 ad\u0131yla de\u011fil, host bilgisiyle de de\u011ferlendirilir. <code>'wp_user'@'localhost'<\/code> ile <code>'wp_user'@'127.0.0.1'<\/code> farkl\u0131 hesap kay\u0131tlar\u0131 olabilir. Parola do\u011fru oldu\u011fu h\u00e2lde eri\u015fimin reddedilmesinin nedeni bu ayr\u0131m olabilir.<\/p>\n<pre><code>sudo mysql -e \"SELECT User, Host, plugin FROM mysql.user WHERE User='wp_user';\"<\/code><\/pre>\n<p>Yetkileri uygulaman\u0131n gereksinimi kadar s\u0131n\u0131rl\u0131 tutun. WordPress&#8217;in mevcut veritaban\u0131nda tablo olu\u015fturma, de\u011fi\u015ftirme ve sorgulama i\u015flemleri i\u00e7in gerekli izinlere ihtiya\u00e7 duydu\u011fu durumlar vard\u0131r. Kullan\u0131c\u0131ya t\u00fcm sunucuda <code>GRANT OPTION<\/code> vermek gerekmez.<\/p>\n<pre><code>SHOW GRANTS FOR 'wp_user'@'localhost';<\/code><\/pre>\n<p>Yetki d\u00fczeltmesi gerekiyorsa veritaban\u0131 ad\u0131n\u0131 do\u011fru yazarak i\u015flem yap\u0131n:<\/p>\n<pre><code>GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wp_user'@'localhost';<\/code><\/pre>\n<p>Bu komut, kullan\u0131c\u0131n\u0131n yaln\u0131zca ilgili veritaban\u0131na eri\u015fmesini hedefler; yine de \u00fcretim sisteminde mevcut yetkileri kaydetmeden geni\u015f bir <code>GRANT<\/code> uygulamay\u0131n. MySQL hesaplar\u0131nda <code>localhost<\/code> ve <code>127.0.0.1<\/code> kay\u0131tlar\u0131n\u0131 ayr\u0131 ayr\u0131 do\u011frulay\u0131n. MySQL 8 ve MariaDB s\u00fcr\u00fcmlerinde yetki de\u011fi\u015fikliklerinin uygulan\u0131\u015f ayr\u0131nt\u0131lar\u0131 farkl\u0131la\u015fabilece\u011fi i\u00e7in mevcut s\u00fcr\u00fcm\u00fcn belgelerini kontrol edin.<\/p>\n<p>MariaDB veya MySQL s\u00fcr\u00fcm\u00fcne g\u00f6re kimlik do\u011frulama eklentisi farkl\u0131 olabilir. Eski PHP s\u00fcr\u00fcm\u00fc ile yeni MySQL kimlik do\u011frulama y\u00f6ntemi aras\u0131nda uyumsuzluk varsa PHP s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckseltmek, rastgele bir authentication plugin de\u011fi\u015fikli\u011finden daha g\u00fcvenlidir.<\/p>\n<h2 id=\"baglanti-hala-kurulmuyorsa-hangi-katmanlari-incelemelisiniz\">Ba\u011flant\u0131 h\u00e2l\u00e2 kurulmuyorsa hangi katmanlar\u0131 incelemelisiniz?<\/h2>\n<p>Komut sat\u0131r\u0131 ba\u011flant\u0131s\u0131 ba\u015far\u0131s\u0131zsa \u00fc\u00e7 olas\u0131l\u0131k \u00f6ne \u00e7\u0131kar: socket veya port yanl\u0131\u015fl\u0131\u011f\u0131, a\u011f eri\u015fimi ve kaynak s\u0131n\u0131r\u0131. \u00d6nce MySQL&#8217;in hangi adreste dinledi\u011fini kontrol edin.<\/p>\n<pre><code>sudo ss -lntp | grep 3306\nsudo ss -lxnp | grep -E 'mysql|maria'<\/code><\/pre>\n<p>\u0130lk komut TCP dinleyicisini, ikinci komut Unix socket dosyas\u0131n\u0131 arar. MySQL yaln\u0131zca <code>127.0.0.1:3306<\/code> \u00fczerinde dinliyorsa uzaktaki uygulama sunucusu ba\u011flanamaz. Tersi durumda firewall kural\u0131 veya yanl\u0131\u015f DNS adresi kontrol edilmelidir.<\/p>\n<pre><code>nc -vz db.internal.example 3306\ngetent hosts db.internal.example<\/code><\/pre>\n<p><code>nc<\/code> ba\u011flant\u0131 kuram\u0131yorsa sorun PHP veya WordPress&#8217;e ula\u015fmadan \u00f6nce a\u011fdad\u0131r. Ba\u011flant\u0131 kuruluyor fakat MySQL eri\u015fimi reddediliyorsa kullan\u0131c\u0131 ve yetki taraf\u0131na d\u00f6n\u00fcn.<\/p>\n<p><code>Too many connections<\/code> hatas\u0131nda <code>SHOW STATUS LIKE 'Threads_connected';<\/code> ve <code>SHOW VARIABLES LIKE 'max_connections';<\/code> \u00e7\u0131kt\u0131lar\u0131 al\u0131nabilir. <code>max_connections<\/code> de\u011ferini art\u0131rmak ge\u00e7ici rahatlama sa\u011flayabilir; PHP-FPM worker say\u0131s\u0131, sorgu s\u00fcresi ve RAM t\u00fcketimi incelenmeden yap\u0131lan art\u0131\u015f sunucuyu bellek bask\u0131s\u0131na sokabilir.<\/p>\n<p>PHP bellek s\u0131n\u0131r\u0131 veya PHP-FPM worker problemi de veritaban\u0131 hatas\u0131yla kar\u0131\u015ft\u0131r\u0131labilir. Bu ayr\u0131m\u0131 anlamak i\u00e7in <a href=\"https:\/\/www.vps.tc\/blog\/tr\/wordpress-bellek-siniri-hatasi-nasil-cozulur\/\">WordPress Bellek S\u0131n\u0131r\u0131 Hatas\u0131 Nas\u0131l \u00c7\u00f6z\u00fcl\u00fcr?<\/a> i\u00e7eri\u011findeki log ve kaynak kontrol\u00fc yakla\u015f\u0131m\u0131 kullan\u0131labilir. \u0130\u015flem seviyesindeki incelemeler i\u00e7in <a href=\"https:\/\/www.vps.tc\/blog\/tr\/linux-islem-yonetimi-ps-top-kill\/\">Linux&#8217;ta \u0130\u015flem Y\u00f6netimi: ps, top ve kill Kullan\u0131m\u0131<\/a> rehberindeki komutlar yard\u0131mc\u0131 olur.<\/p>\n<p><strong>Katman\u0131 ay\u0131r\u0131n<\/strong> &#8211; Socket, TCP portu, firewall ve ba\u011flant\u0131 say\u0131s\u0131n\u0131 s\u0131rayla test ederek sorunu PHP&#8217;den \u00f6nce daralt\u0131n.<\/p>\n<div class=\"aiw-callout aiw-callout-example\">\n<p class=\"aiw-callout-label\">\u00d6rnek<\/p>\n<p>Uygulama sunucusu 10.0.0.12, veritaban\u0131 sunucusu 10.0.0.20 ise DB_HOST de\u011ferinin localhost olmas\u0131 yanl\u0131\u015ft\u0131r. \u00d6zel a\u011f adresi, 3306 port eri\u015fimi, MySQL bind-address ayar\u0131 ve kullan\u0131c\u0131n\u0131n kaynak host izni birlikte do\u011frulanmal\u0131d\u0131r.<\/p>\n<\/div>\n<h2 id=\"veritabani-bozulmasi-veya-bakim-gereksinimi-nasil-anlasilir\">Veritaban\u0131 bozulmas\u0131 veya bak\u0131m gereksinimi nas\u0131l anla\u015f\u0131l\u0131r?<\/h2>\n<p>Servis \u00e7al\u0131\u015f\u0131yor, kullan\u0131c\u0131 ba\u011flant\u0131s\u0131 ba\u015far\u0131l\u0131 fakat WordPress h\u00e2l\u00e2 hata veriyorsa tablo eri\u015fimi, disk hatas\u0131 veya veritaban\u0131 bozulmas\u0131 incelenir. \u00d6nce yedek al\u0131n; onar\u0131m komutlar\u0131 baz\u0131 durumlarda tablo yap\u0131s\u0131n\u0131 de\u011fi\u015ftirebilir.<\/p>\n<p>WordPress&#8217;in <code>wp-config.php<\/code> dosyas\u0131na ge\u00e7ici olarak \u015fu sat\u0131r eklenebilir:<\/p>\n<pre><code>define( 'WP_ALLOW_REPAIR', true );<\/code><\/pre>\n<p>Ard\u0131ndan <code>\/wp-admin\/maint\/repair.php<\/code> adresi kullan\u0131labilir. Bu \u00f6zellik baz\u0131 kurulumlarda kimlik do\u011frulamas\u0131 istemeyebilece\u011fi i\u00e7in i\u015flem biter bitmez sat\u0131r\u0131 kald\u0131r\u0131n. Y\u00f6ntemi yaln\u0131zca gerekli durumlarda ve bak\u0131m penceresinde kullan\u0131n.<\/p>\n<p>MySQL istemcisiyle tablo kontrol\u00fc de yap\u0131labilir:<\/p>\n<pre><code>mysqlcheck -u wp_user -p wordpress<\/code><\/pre>\n<p>Her tablo i\u00e7in <code>OK<\/code> g\u00f6r\u00fclmesi ba\u011flant\u0131 sorununu \u00e7\u00f6zmez; yaln\u0131zca tablo kontrol\u00fcn\u00fcn ba\u015far\u0131l\u0131 oldu\u011funu g\u00f6sterir. Dosya sistemi hatas\u0131, disk dolulu\u011fu ve InnoDB kurtarma ihtiyac\u0131 ayr\u0131 konulard\u0131r. <code>ibdata1<\/code> veya redo log dosyalar\u0131n\u0131 elle silmek, veritaban\u0131n\u0131 kurtarmak yerine kal\u0131c\u0131 veri kayb\u0131na yol a\u00e7abilir.<\/p>\n<p>Bir tabloyu onarmadan veya silmeden \u00f6nce mant\u0131ksal yedek al\u0131n:<\/p>\n<pre><code>mysqldump --single-transaction --routines --triggers wordpress &gt; wordpress-$(date +%F).sql<\/code><\/pre>\n<p>InnoDB kullanan b\u00fcy\u00fck veritabanlar\u0131nda <code>--single-transaction<\/code> \u00e7evrimi\u00e7i yedek i\u00e7in uygun olabilir; MyISAM tablolar\u0131nda ayn\u0131 davran\u0131\u015f garanti edilmez. Yedek dosyas\u0131n\u0131n olu\u015fmas\u0131, geri d\u00f6nd\u00fcr\u00fclebilir oldu\u011fu anlam\u0131na gelmez. Ayr\u0131 bir ortamda geri y\u00fckleme provas\u0131 yap\u0131lmal\u0131d\u0131r.<\/p>\n<div class=\"aiw-callout aiw-callout-field\">\n<p class=\"aiw-callout-label\">Sahadan not<\/p>\n<p>Bir RAID1 dizisinde ilk diskin degraded duruma d\u00fc\u015ft\u00fc\u011f\u00fcn\u00fc g\u00f6rd\u00fc\u011f\u00fcmde veritaban\u0131 servisini hemen yeniden ba\u015flatmad\u0131m. smartctl ve journal \u00e7\u0131kt\u0131lar\u0131nda ikinci diskin de hata verdi\u011fini fark edince yedekleri do\u011frulad\u0131m, trafi\u011fi kontroll\u00fc bi\u00e7imde azaltt\u0131m ve disk de\u011fi\u015fimini servis etkisini \u00f6l\u00e7erek yapt\u0131m. Depolama alarm\u0131 ile ba\u011flant\u0131 hatas\u0131n\u0131 ayn\u0131 anda de\u011ferlendirmek veri kayb\u0131 riskini ciddi bi\u00e7imde azalt\u0131yor.<\/p>\n<\/div>\n<h2 id=\"onbellek-ve-eklentiler-hata-ekranini-etkileyebilir-mi\">\u00d6nbellek ve eklentiler hata ekran\u0131n\u0131 etkileyebilir mi?<\/h2>\n<p>Veritaban\u0131 d\u00fczeltildikten sonra eski hata sayfas\u0131 g\u00f6r\u00fcl\u00fcyorsa sayfa \u00f6nbelle\u011fi veya PHP opcode cache devrede olabilir. \u00d6nce taray\u0131c\u0131dan ba\u011f\u0131ms\u0131z bir istek yap\u0131n, ard\u0131ndan web sunucusu ve CDN \u00f6nbelle\u011fini temizleyin.<\/p>\n<p>WordPress dosyalar\u0131na eri\u015fim varsa t\u00fcm eklentileri ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakmak i\u00e7in eklenti klas\u00f6r\u00fcn\u00fc yeniden adland\u0131rabilirsiniz:<\/p>\n<pre><code>mv wp-content\/plugins wp-content\/plugins.off<\/code><\/pre>\n<p>Hata kaybolursa klas\u00f6r ad\u0131n\u0131 geri al\u0131p eklentileri tek tek etkinle\u015ftirin. Bu i\u015flem veritaban\u0131 ba\u011flant\u0131s\u0131n\u0131 do\u011frudan d\u00fczeltmez; yaln\u0131zca hatay\u0131 tetikleyen eklenti veya ba\u011flant\u0131 havuzu davran\u0131\u015f\u0131n\u0131 ay\u0131rmaya yard\u0131m eder.<\/p>\n<p>Debug log a\u00e7\u0131lacaksa \u00fcretim sitesinde hatay\u0131 ekrana bast\u0131rmay\u0131n:<\/p>\n<pre><code>define( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );<\/code><\/pre>\n<p>Log genellikle <code>wp-content\/debug.log<\/code> alt\u0131nda olu\u015fur. \u0130nceleme tamamlan\u0131nca debug ayarlar\u0131n\u0131 kapat\u0131n veya eri\u015fimi k\u0131s\u0131tlay\u0131n; SQL sorgular\u0131nda parola ve ki\u015fisel veri bulunabilir.<\/p>\n<p>\u0130\u00e7erik dosyalar\u0131n\u0131 de\u011fi\u015ftirerek veritaban\u0131 hatas\u0131n\u0131 gizlemek yerine k\u00f6k nedeni d\u00fczeltin. Rastgele bir eklentiyi silmek, tablo yap\u0131s\u0131n\u0131n ve eklenti ayarlar\u0131n\u0131n geride kalmas\u0131na neden olabilir.<\/p>\n<p><strong>\u00d6nbelle\u011fi en sona b\u0131rak\u0131n<\/strong> &#8211; Servis, eri\u015fim ve yetki kontrolleri tamamlanmadan cache temizli\u011fini \u00e7\u00f6z\u00fcm olarak kabul etmeyin.<\/p>\n<h2 id=\"tekrar-yasanmamasi-icin-uretim-kontrolu\">Tekrar ya\u015fanmamas\u0131 i\u00e7in \u00fcretim kontrol\u00fc<\/h2>\n<p>Ba\u011flant\u0131 d\u00fczeldikten sonra yaln\u0131zca ana sayfay\u0131 a\u00e7mak yeterli de\u011fildir. Y\u00f6netim paneli, yaz\u0131 kaydetme, medya y\u00fckleme ve planlanm\u0131\u015f g\u00f6revler test edilmelidir. Ayn\u0131 anda disk kullan\u0131m\u0131n\u0131, PHP-FPM loglar\u0131n\u0131 ve MySQL hata logunu izleyin.<\/p>\n<p>Yedekleme g\u00f6revinin ger\u00e7ekten \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve geri y\u00fcklenebildi\u011fini do\u011frulay\u0131n. Veritaban\u0131 yede\u011fini web k\u00f6k\u00fcnde tutmay\u0131n; dosya izinlerini, saklama s\u00fcresini ve uzak kopyay\u0131 ayr\u0131ca kontrol edin.<\/p>\n<p>\u0130zleme taraf\u0131nda en az \u015fu g\u00f6stergeler anlaml\u0131d\u0131r: MySQL servis durumu, disk doluluk oran\u0131, ba\u011flant\u0131 say\u0131s\u0131, PHP-FPM aktif worker say\u0131s\u0131 ve WordPress&#8217;in HTTP 5xx oran\u0131. Alarm geldi\u011finde ilk i\u015f olarak yeniden ba\u015flatmak yerine ilgili zaman aral\u0131\u011f\u0131ndaki loglar\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<p>WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131 bir parola probleminden ibaret olabilir; ayn\u0131 ekran disk dolulu\u011funu, yanl\u0131\u015f socket yolunu veya a\u015f\u0131r\u0131 ba\u011flant\u0131 say\u0131s\u0131n\u0131 da saklayabilir. Her katman\u0131 do\u011frudan test etti\u011finizde \u00e7\u00f6z\u00fcm yolu belirginle\u015fir. Bir sonraki alarmda ilk komutunuz yeniden ba\u015flatma de\u011fil, hangi servisin cevap vermedi\u011fini g\u00f6steren \u00f6l\u00e7\u00fcm olsun.<\/p>\n<h2 id=\"duzeltme-oncesi-kontrol-listesi\">D\u00fczeltme \u00d6ncesi Kontrol Listesi<\/h2>\n<ul class=\"aiw-checklist\">\n<li>Hata saatini ve ilgili web sunucusu ile PHP-FPM loglar\u0131n\u0131 kaydedin.<\/li>\n<li>wp-config.php i\u00e7indeki d\u00f6rt veritaban\u0131 sabitini kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/li>\n<li>mysql veya mariadb servis durumunu ve journal kay\u0131tlar\u0131n\u0131 inceleyin.<\/li>\n<li>Ayn\u0131 bilgilerle komut sat\u0131r\u0131ndan g\u00fcvenli ba\u011flant\u0131 testi yap\u0131n.<\/li>\n<li>Disk dolulu\u011funu, MySQL portunu ve socket dosyas\u0131n\u0131 kontrol edin.<\/li>\n<li>Kullan\u0131c\u0131n\u0131n host kayd\u0131n\u0131 ve veritaban\u0131 yetkilerini do\u011frulay\u0131n.<\/li>\n<li>Onar\u0131m veya kurtarma i\u015fleminden \u00f6nce do\u011frulanabilir yedek al\u0131n.<\/li>\n<\/ul>\n<div class=\"aiw-cta\">\n<p>Bu kontrolleri bak\u0131m notlar\u0131n\u0131za ekleyin ve yedek geri d\u00f6n\u00fc\u015f\u00fcn\u00fc hata ya\u015fanmadan \u00f6nce deneyin. Bir sonraki ba\u011flant\u0131 alarm\u0131nda yeniden ba\u015flatma yerine hangi katman\u0131n cevap vermedi\u011fini \u00f6l\u00e7erek ba\u015flay\u0131n.<\/p>\n<p class=\"aiw-cta-action\"><a href=\"https:\/\/www.vps.tc\/tr\/vps\">VPS paketlerini inceleyin<\/a><\/p>\n<\/div>\n<h2 id=\"sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/h2>\n<div class=\"aiw-faq\">\n<details class=\"aiw-faq-item\" open>\n<summary>WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131 neden olur?<\/summary>\n<p>En yayg\u0131n nedenler wp-config.php i\u00e7indeki veritaban\u0131 bilgilerinin yanl\u0131\u015f olmas\u0131, MySQL veya MariaDB servisinin durmas\u0131, kullan\u0131c\u0131n\u0131n yetkisiz olmas\u0131 ve DB_HOST de\u011ferinin hatal\u0131 se\u00e7ilmesidir. Dolu disk, hatal\u0131 Unix socket, uzak sunucuda firewall engeli ve Too many connections durumu da ayn\u0131 WordPress ekran\u0131n\u0131 olu\u015fturabilir. Log ve CLI ba\u011flant\u0131s\u0131 nedenleri birbirinden ay\u0131r\u0131r.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131 i\u00e7in ilk ne kontrol edilir?<\/summary>\n<p>\u0130lk olarak wp-config.php dosyas\u0131ndaki DB_NAME, DB_USER, DB_PASSWORD ve DB_HOST de\u011ferleri kontrol edilir. Ard\u0131ndan systemctl status mysql veya systemctl status mariadb ile servis durumu incelenir. Ayn\u0131 kullan\u0131c\u0131 ve host bilgileriyle mysql -h 127.0.0.1 -u kullanici -p veritabani komutu \u00e7al\u0131\u015ft\u0131r\u0131larak WordPress d\u0131\u015f\u0131ndan ba\u011flant\u0131 denenir.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>DB_HOST localhost mu, 127.0.0.1 mi olmal\u0131?<\/summary>\n<p>Bu se\u00e7im sunucunun ba\u011flant\u0131 y\u00f6ntemine ba\u011fl\u0131d\u0131r. localhost \u00e7o\u011fu MySQL istemcisinde Unix socket kullanabilir; 127.0.0.1 ise TCP \u00fczerinden yerel ba\u011flant\u0131 kurar. Socket yolu bulunam\u0131yor veya yanl\u0131\u015fsa 127.0.0.1 i\u015fe yarayabilir. Uzak veritaban\u0131 kullan\u0131l\u0131yorsa DB_HOST, veritaban\u0131 sunucusunun \u00f6zel a\u011f adresi veya DNS ad\u0131 olmal\u0131d\u0131r.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>MySQL servisi \u00e7al\u0131\u015f\u0131yor ama WordPress ba\u011flanam\u0131yor, neden?<\/summary>\n<p>Servisin \u00e7al\u0131\u015fmas\u0131 tek ba\u015f\u0131na yeterli de\u011fildir. WordPress kullan\u0131c\u0131s\u0131n\u0131n do\u011fru host kayd\u0131na, do\u011fru parolaya ve ilgili veritaban\u0131na eri\u015fim yetkisine sahip olmas\u0131 gerekir. MySQL hesaplar\u0131nda localhost ile 127.0.0.1 farkl\u0131 kay\u0131tlar olabilir. SHOW GRANTS ve SELECT User, Host FROM mysql.user sorgular\u0131 bu ayr\u0131m\u0131 g\u00f6rmenizi sa\u011flar.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>WordPress veritaban\u0131 hatas\u0131nda repair.php kullan\u0131lmal\u0131 m\u0131?<\/summary>\n<p>repair.php yaln\u0131zca tablo bak\u0131m\u0131na ihtiya\u00e7 oldu\u011fundan \u015f\u00fcpheleniliyorsa kullan\u0131lmal\u0131d\u0131r; yanl\u0131\u015f kullan\u0131c\u0131 parolas\u0131 veya durmu\u015f servis sorununu \u00e7\u00f6zmez. WP_ALLOW_REPAIR ayar\u0131 ge\u00e7ici olarak a\u00e7\u0131lmal\u0131, i\u015flem bitince kald\u0131r\u0131lmal\u0131d\u0131r. Bu sayfa baz\u0131 kurulumlarda kimlik do\u011frulamas\u0131 istemeyebilece\u011fi i\u00e7in a\u00e7\u0131k b\u0131rak\u0131lmas\u0131 g\u00fcvenlik riski olu\u015fturur.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131 veri kayb\u0131na yol a\u00e7ar m\u0131?<\/summary>\n<p>Ba\u011flant\u0131 hatas\u0131 tek ba\u015f\u0131na veri silmez; ancak disk ar\u0131zas\u0131, bozuk depolama veya yanl\u0131\u015f kurtarma komutlar\u0131 veri kayb\u0131na e\u015flik edebilir. Tablo onar\u0131m\u0131, yetki de\u011fi\u015fikli\u011fi veya InnoDB kurtarma i\u015fleminden \u00f6nce yedek al\u0131n. Yede\u011fin kullan\u0131labilirli\u011fini ayr\u0131 bir sunucuda geri y\u00fckleme yaparak do\u011frulay\u0131n.<\/p>\n<\/details>\n<\/div>\n<h2 id=\"kaynaklar\">Kaynaklar<\/h2>\n<ul class=\"aiw-sources\">\n<li><a href=\"https:\/\/wordpress.org\/documentation\/article\/editing-wp-config-php\/\" target=\"_blank\" rel=\"noopener\">WordPress &#8211; wp-config.php D\u00fczenleme<\/a> \u2014 wordpress.org<\/li>\n<li><a href=\"https:\/\/wordpress.org\/documentation\/article\/debugging-in-wordpress\/\" target=\"_blank\" rel=\"noopener\">WordPress &#8211; Hata Ay\u0131klama<\/a> \u2014 wordpress.org<\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/\" target=\"_blank\" rel=\"noopener\">MySQL 8.0 &#8211; Access Denied Hatalar\u0131<\/a> \u2014 dev.mysql.com<\/li>\n<li><a href=\"https:\/\/www.php.net\/manual\/en\/mysqli.quickstart.connections.php\" target=\"_blank\" rel=\"noopener\">PHP Manual &#8211; MySQLi Ba\u011flant\u0131lar\u0131<\/a> \u2014 php.net<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>WordPress veritaban\u0131 ba\u011flant\u0131 hatas\u0131n\u0131 wp-config.php, MySQL servisi, kullan\u0131c\u0131 yetkileri, socket, port ve log kontrolleriyle te\u015fhis edin.<\/p>\n","protected":false},"author":2,"featured_media":864,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[666],"tags":[],"class_list":["post-866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms"],"lang":"tr","translations":{"tr":866,"en":867},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=866"}],"version-history":[{"count":1,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/866\/revisions"}],"predecessor-version":[{"id":868,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/866\/revisions\/868"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/864"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}