SSS - Sıkça Sorulan Sorular¶
Lütfen phpMyAdmin’nin özelliklerinin ve/veya arayüzünün derinlemesine kapsamı için phpMyAdmin ana sayfasındaki Bağlantı bölümü’müze bir göz atın.
Sunucu¶
1.1 Sunucum belirli eylemler gerektiğinde her seferinde arızalanıyor ya da phpMyAdmin boş sayfa gönderiyor veya tarayıcımda sayfa şifreli karakterlerle doluyor, ne yapabilirim?¶
config.inc.php
dosyanızdaki $cfg['OBGzip']
yönergesini false
ve php yapılandırma dosyanızdaki zlib.output_compression
yönergesini Off
olarak ayarlamayı deneyin.
1.2 phpMyAdmin kullandığımda Apache sunucum arızalanıyor.¶
Önce Apache’nin (ve mümkünse MySQL’in) en son sürümünü denemelisiniz. Eğer sunucunuz arızalanmaya devam ederse, lütfen çeşitli Apache destek gruplarından yardım isteyin.
1.3 (geri alındı).¶
1.4 IIS üzerinde phpMyAdmin kullanımında, hata mesajı alıyorum: “Belirlenen CGI uygulaması HTTP başlıklarının tam bir grubunu döndürmeyerek uygunsuz davrandı …”.¶
Şimdi PHP dağıtımındaki install.txt dosyasını okumayı bırakın. Resmi PHP hata veritabanından bu PHP hata raporu #12061 içindeki son mesaja bir bakın.
1.5 IIS üzerinde phpMyAdmin kullanımında, HTTP ile birçok hata mesajı ve/veya arızalarla yüz yüze kalıyorum.¶
Bu, PHP ISAPI süzgeci ile ilgili bilinen bir sorundur: o kadar sağlam değildir. Lütfen onun yerine tanımlama bilgisi kimlik doğrulaması kipi kullanın.
1.6 PWS’de phpMyAdmin kullanamıyorum: hiçbir şey görüntülenmiyor!¶
Bu bir PWS hatası gibi görünüyor. Filippo Simoncini geçici bir çözüm buldu (şu anda daha iyi bir düzeltme yok): src/Header.php
ve index.php
betiklerinden DOCTYPE
bildirimlerini (2 satır) yorumlayın ya da kaldırın.
1.7 Nasıl gzip dökümü alabilirim ya da CSV olarak dışa aktarabilirim? Bu çalışıyor görünmüyor.¶
Bu özellik platformun (Unix/Windows, Güvenli Kip veya değil, ve benzeri) daha bağımsız olması için gzencode()
PHP işlevi tabanlıdır. Bu yüzden, Zlib desteğine (--with-zlib
) sahip olmak zorundasınız.
1.8 Tabloya metin dosyası ekleyemiyorum ve güvenli kipin etkili olmasıyla ilgili bir hata alıyorum.¶
Gönderilen dosyanız php.ini
içindeki upload_tmp_dir
(genellikle sistem varsayılanı /tmp’dir) değişkeniyle tanımlanan “gönderme dizini” içine PHP tarafından kaydedilir. Aşağıdaki ayarlamayı güvenli kipte çalışan Apache sunucuları için öneririz, dosyaların gönderilmesini oldukça güvenli yaparak etkinleştirmek için:
- göndermeler için ayrı dizin oluşturun: mkdir /tmp/php
- Apache sunucusunun user.group’a sahiplik verin: chown apache.apache /tmp/php
- uygun izni verin: chmod 600 /tmp/php
php.ini
içineupload_tmp_dir = /tmp/php
koyun- Apache’yi yeniden başlatın
1.9 (geri alındı).¶
1.10 Güvenli bir sunucu üzerinde çalışan phpMyAdmin ile dosyaları gönderirken sorun yaşıyorum. Tarayıcım Internet Explorer ve Apache sunucusu kullanıyorum.¶
phpWizard forumunda “Rob M”in önerdiğine göre bu satırı httpd.conf dosyanızın içine ekleyin:
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
Internet Explorer ve SSL arasındaki çoğu sorunu hallettiği görünüyor.
1.11 İçe aktarma sekmesinden bir dosya gönderirken bir ‘open_basedir kısıtlaması’ alıyorum.¶
2.2.4 sürümünden bu yana, phpMyAdmin open_basedir kısıtlamalarıyla sunucuları destekler. Ancak geçici dizin oluşturmanız ve $cfg['TempDir']
olarak yapılandırmanız gerekir. Gönderilmiş dosyalar buraya taşınacaktır ve SQL komutlarınızın yürütülmesinden sonra kaldırılacaktır.
1.12 MySQL root parolamı kaybettim, ne yapabilirim?¶
phpMyAdmin, kullandığınız MySQL sunucusuna karşı kimlik doğrulaması yapar, böylece phpMyAdmin’i parola kaybından kurtarmak için MySQL düzeyinde kurtarmanız gerekir.
MySQL kılavuzu izinleri nasıl sıfırlayacağınızı anlatır.
Eğer barındırma sağlayıcınız tarafından yüklü MySQL sunucusu kullanıyorsanız, parolanızı kurtarmak için lütfen desteği ile irtibata geçin.
1.13 (geri alındı).¶
1.14 (geri alındı).¶
1.15 mysql.user sütun adlarıyla sorunlarım var.¶
Önceki MySQL sürümlerinde, User
ve Password
sütunları user
ve password
olarak adlandırılırdı. Lütfen sütun adlarınızı şu anki standartlarla hizalamak için değiştirin.
1.16 Büyük döküm dosyalarını gönderemiyorum (bellek, HTTP ya da zaman aşımı sorunları).¶
2.7.0 sürümünden başlayarak, içe aktarma motoru yeniden yazıldı ve bu sorunlar meydana gelmemelidir. Eğer mümkünse, yeni içe aktarma özelliklerinin avantajından yararlanmak için phpMyAdmin’inizi en son sürüme yükseltin.
Kontrol edilecek (veya kontrol etmesi için anamakine sağlayıcısına sorulacak) ilk şeyler php.ini
yapılandırma dosyası içindeki max_execution_time
, upload_max_filesize
, memory_limit
ve post_max_size
değerleridir. Tüm bu ayarlar PHP tarafından işlenen ve gönderilebilen en fazla veri boyutunu sınırlandırır. Lütfen post_max_size
değerinin upload_max_filesize
değerinden daha büyük olması gerektiğini unutmayın. Eğer gönderdiğiniz çok büyükse veya barındırma hizmeti sağlayıcınız ayarları değiştirmeye isteksizse birkaç geçici çözüm mevcut:
$cfg['UploadDir']
özelliğine bakın. Bu, scp, FTP veya sık kullandığınız dosya aktarım yönteminizle bir dosyayı göndermenize izin verir. phpMyAdmin ondan sonra dosyaları geçici dizinden içe aktarabilir. Daha fazla bilgi bu belgenin Yapılandırma bölümünde mevcuttur.Göndermeden önce dosyaları bölmek için yardımcı uygulama (BigDump gibi) kullanmak. Bunu ya da herhangi üçüncü taraf uygulamaları destekleyemiyoruz ama kullanıcıların bununla başarılı olduğundan bilgimiz var.
Eğer kabuk (komut satırı) erişiminiz varsa, doğrudan dosyaları içe aktarmak için MySQL kullanın. Bunu MySQL içinden “source” komutunu vererek yapabilirsiniz:
source filename.sql;
1.17 phpMyAdmin hangi Veritabanı sürümlerini destekliyor?¶
MySQL için 5.5 ve daha yeni sürümleri desteklenir. Daha eski MySQL sürümleri için İndirmeler sayfamız daha eski phpMyAdmin sürümlerini (desteklenmiyor olabilir) sunar.
MariaDB için 5.5 ve daha yeni sürümleri desteklenir.
1.17a MySQL sunucusuna bağlanamıyorum. Her zaman hata mesajı döndürüyor, “İstemci, sunucu tarafından istenen kimlik doğrulaması protokolünü desteklemiyor; MySQL istemcisinin yükseltilmesi düşünülmeli”¶
MySQL’e eski bir MySQL istemci kütüphanesiyle erişmeyi denediniz. MySQL istemci kütüphanesinin sürümü phpinfo() çıktınızda kontrol edilebilir. Genelde, bu, sunucunuz gibi en az aynı ufak sürüme sahip olmalıdır - 1.17 phpMyAdmin hangi Veritabanı sürümlerini destekliyor? içinde bahsedildiği gibi. Bu soruna genel olarak MySQL sürümü 4.1 veya daha yenisi neden olur. MySQL kimlik doğrulaması adreslemesini değiştirdi ve PHP’niz eski yöntemi kullanmaya çalışıyor. Uygun çözüm, MySQL kurulumuyla eşleşen, uygun istemci kütüphanesi ile mysqli uzantısını kullanmaktır. Daha fazla bilgi (ve birkaç geçici çözüm) MySQL Belgesinde yer almaktadır.
1.18 (geri alındı).¶
1.19 “Görüntüleme ilişkileri” özelliğini çalıştıramıyorum çünkü betik, kullandığım yazı tipi yüzünü bilmiyor görünüyor!¶
Bu özellik için kullandığımız TCPDF kütüphanesi yazı tipi yüzlerini kullanmak için bazı özel dosyalar gerektirir. Lütfen bu dosyaları yapmak için TCPDF kılavuzuna başvurun.
1.20 Eksik mysqli ve mysql uzantıları ile ilgili bir hata alıyorum.¶
Bir MySQL sunucusuna bağlanmak için PHP’nin “MySQL uzantısı” olarak adlandırılan MySQL işlevleri grubuna ihtiyacı vardır. Bu uzantı PHP dağıtımının parçası (birlikte derlenmiş) olabilir, ayrıca dinamik olarak yüklenmesi gerekebilir. Adı büyük olasılıkla mysqli.so veya php_mysqli.dll’dir. phpMyAdmin uzantıyı yüklemeyi denemiştir ama başarısız olmuştur. Genellikle, sorun “PHP-MySQL” veya benzer bir şey adında bir yazılım paketini yükleyerek çözülür.
MySQL uzantıları olarak PHP’nin sağladığı iki arayüz vardı - mysql
ve mysqli
. mysql
arayüzü PHP 7.0 sürümünde kaldırıldı.
Bu soruna ayrıca php.ini
içindeki yanlış yollar ya da yanlış php.ini
kullanımı neden olabilir.
extension_dir
dizinini işaret eden klasör içinde uzantı dosyalarının olduğundan ve php.ini
dosyanız içinde karşılık gelen satırların derleme dışı bırakılmadığından emin olun (şu anki kurulumu kontrol etmek için phpinfo()
kullanabilirsiniz):
[PHP]
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/Apache2/modules/php/ext"
php.ini
dosyası birkaç yerden yüklenebilir (özellikle Windows’ta), bu yüzden lütfen doğru olanı güncellediğinizi kontrol edin. Eğer Apache kullanılıyorsa, PHPIniDir
yönergesini kullanarak bu dosya için belirli bir yol kullanmasını söyleyebilirsiniz:
LoadModule php7_module "C:/php7/php7apache2_4.dll"
<IfModule php7_module>
PHPIniDir "C:/php7"
<Location>
AddType text/html .php
AddHandler application/x-httpd-php .php
</Location>
</IfModule>
Bazı nadir durumlarda bu soruna ayrıca MySQL uzantılarının yüklenmesini engelleyen PHP’de yüklü diğer uzantılar neden olabilir. Eğer başka bir şey başarısız olursa, diğer veritabanları için uzantıları php.ini
dosyasından derleme dışı bırakmayı deneyebilirsiniz.
1.21 Unix altında PHP’nin CGI sürümünü çalıştırıyorum ve kimlik doğ. kullanarak oturum açamıyorum.¶
php.ini
içinde mysql.max_links
değerini 1’den büyüğe ayarlayın.
1.22 “Metin dosyası yeri” alanını göremiyorum bu yüzden gönderemiyorum.¶
Bu büyük ihtimalle php.ini
içinden kaynaklanıyor, file_uploads
parametreniz “on” olarak ayarlı değil.
1.23 Win32 makinede MySQL çalıştırıyorum. Her defasında yeni bir tablo oluşturduğumda tablo ve sütun adları küçük harfe değiştiriliyor!¶
Bu oluyor çünkü MySQL’in Win32 sürümü içinde lower_case_table_names
yönergesi varsayılanı 1 (AÇIK
). Yönergeyi basitçe 0’a (KAPALI
) değiştirerek bu davranışı değiştirebilirsiniz: Sadece Windows dizininiz içinde bulunması gereken my.ini
dosyanızı düzenleyin ve aşağıdaki satırı [mysqld] grubuna ekleyin:
set-variable = lower_case_table_names=0
Not
Büyük küçük harfe duyarlı bir dosya sisteminde bu değişkeni –lower-case-table-names=0 ile 0’a zorlamak ve farklı büyük küçük harf kullanarak MyISAM tablo adlarına erişmek, indeks bozulmasıyla sonuçlanabilir.
Sonra, dosyayı kaydedin ve MySQL hizmetini yeniden başlatın. Sorgu kullanarak bu yönergenin değerini her zaman kontrol edebilirsiniz
SHOW VARIABLES LIKE 'lower_case_table_names';
1.24 (geri alındı).¶
1.25 Windows XP üzerinde mod_gzip-1.3.26.1a ile birlikte Apache çalıştırıyorum ve sorunlar yaşıyorum, mesela SQL sorgusu çalıştırdığımda ki tanımsız değişkenler gibi.¶
Jose Fandos’tan bir ipucu: httpd.conf içinde aşağıdaki iki satıra şöyle bir açıklama koyun:
# mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"
Apache (Windows) üzerinde mod_gzip sürümü olarak PHP betikleri kullanma sorun olur. Elbette Apache’yi yeniden başlatmak zorundasınız.
1.26 phpMyAdmin’i henüz IIS’nin belge kök klasörü içine kurdum ama phpMyAdmin’i çalıştırmayı denediğimde “Belirtilmiş girdi dosyası yok” hatası alıyorum.¶
Bu izin sorunudur. Phpmyadmin klasörüne sağ tuşla tıklayın ve özellikleri seçin. Güvenlik sekmesi altında, “Düzenle -> Ekle -> Gelişmiş -> Şimdi Bul” ve listeden “IUSR” kullanıcısını seçin. Şimdi bunların izinlerini ayarlayın ve bunun çalışması gerekir.
1.27 Çok büyük bir sayfa görüntülemek istediğimde boş bir sayfa alıyorum (örn. bir yığın tabloyla db_structure.php).¶
Buna, GZIP çıktı arabelleklemesi etkinleştirildiğinde meydana gelen bir PHP hatası neden olmuştur. Eğer kapatırsanız (config.inc.php
içinde $cfg['OBGzip']
ayarlayarak), çalışmalıdır. Bu hata PHP 5.0.0’da düzeltilmiştir.
1.28 MySQL sunucum bazen sorguları reddediyor ve ‘Errorcode: 13’ mesajını döndürüyor. Bu ne anlama geliyor?¶
lower_case_table_names
değeri 1’e ayarlı olmasına rağmen veritabanı / tablo adlarında büyük harfli karakterler olduğunda bir MySQL hatasından dolayı bu olabiliyor. Bunu düzeltmek için bu yönergeyi kapatın, tüm veritabanı ve tablo adlarını küçük harfe dönüştürün ve tekrar açın. Alternatif olarak MySQL 3.23.56 / 4.0.11-gamma ile başlayan mevcut bir hata düzeltmesi vardır.
1.29 Bir tablo oluşturduğumda ya da sütun değiştirdiğimde, bir hata alıyorum ve sütunlar çoğalıyor.¶
PHP’nin .php dosyalarını yorumlama sorunlarının olduğu bir şekilde Apache’yi yapılandırmak mümkün.
Bu sorun iki farklı (ve çakışan) yönergeler grubu kullanıldığında meydana gelir:
SetOutputFilter PHP
SetInputFilter PHP
ve
AddType application/x-httpd-php .php
Gördüğümüz durumda, /etc/httpd/conf/addon-modules/php.conf
içinde diğer grup varken, bir grup yönerge /etc/httpd/conf/httpd.conf
içindeydi. Önerilen yol AddType
ile, bu yüzden sadece satırların ilk grubunu derleme dışı bırakın ve Apache’yi yeniden başlatın:
#SetOutputFilter PHP
#SetInputFilter PHP
1.31 phpMyAdmin hangi PHP sürümlerini destekliyor?¶
4.5 yayımından bu yana phpMyAdmin sadece PHP 5.5 ve daha yenisini destekler. 4.1 yayımından bu yana phpMyAdmin sadece PHP 5.3 ve daha yenisini destekler. PHP 5.2 için 4.0.x yayımlarını kullanabilirsiniz.
phpMyAdmin 4.6 sürümünden bu yana PHP 7, 4.6.5 sürümünden bu yana PHP 7.1, 4.7.4 sürümünden bu yana PHP 7.2 desteklenmektedir.
HHVM, phpMyAdmin 4.8 sürümüne kadar desteklenir.
5.0 yayımından bu yana phpMyAdmin sadece PHP 7.1 ve daha yenisini destekler. 5.2 yayımından bu yana phpMyAdmin sadece PHP 7.2 ve daha yenisini destekler. 6.0 yayımından bu yana phpMyAdmin sadece PHP 8.1 ve daha yenisini destekler.
1.32 Apache IIS ile >HTTP kimlik doğrulaması kullanabilir miyim?¶
Evet. Bu işlem IIS 5.1 altında ISAPI kipinde PHP 4.3.9, phpMyAdmin 2.6.1 ile denendi.
php.ini
dosyanız içinde,cgi.rfc2616_headers = 0
olarak ayarlayınWeb Sitesi Özellikleri -> Dizin Güvenliği -> İsimsiz Erişim
ileti kutusunda,İsimsiz erişim
onay kutusunu işaretleyin ve herhangi bir diğer onay kutularından işaretleri kaldırın (yani eğer etkinleştirilirse,Basit kimlik doğrulaması
,Bütünleşik Windows kimlik doğrulaması
veÖzet kimlik doğrulaması
işaretlerini kaldırın).TAMAM
’a tıklayın.Özel Hatalar
içinde401;1
’den401;5
’e kadar olan aralığı seçin veVarsayılana Ayarla
düğmesine tıklayın.
Ayrıca bkz.
1.33 (geri alındı).¶
1.34 Doğrudan bir veritabanına ya da tablo sayfalarına erişebilir miyim?¶
Evet. İlk çalıştırma, http://sunucu/phpMyAdmin/index.php?server=X&db=database&table=table&target=script
gibi bir URL kullanabilirsiniz. Sunucu
için config.inc.php
içindeki sayısal anamakine indeksini ($i
olan) ifade eden sunucu sayısı kullanabilirsiniz. Tablo ve betik kısımları isteğe bağlıdır.
Eğer http://sunucu/phpMyAdmin/veritabanı[/table][/script]
gibi bir URL istiyorsanız, bazı yapılandırmalar yapmanız gerekir. Aşağıdaki satırlar sadece Apache web sunucusu için uygulanır. Önce, Apache genel yapılandırmasıyla birlikte bazı özellikleri etkinleştirdiğinizden emin olun. phpMyAdmin’nin kurulu olduğu dizin için Options SymLinksIfOwnerMatch
ve AllowOverride FileInfo
parametrelerini etkinleştirmiş olmanız gerekir ve mod_rewrite’ın etkinleştirilmiş olmasına ihtiyacınız vardır. Ondan sonra sadece phpMyAdmin kurulumunun (içinde bulunduğu dizin adını değiştirmeyi unutmayın) kök klasöründe aşağıdaki .htaccess dosyasını oluşturmaya ihtiyacınız var:
RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
5.1.0 sürümünde değişti: phpMyAdmin 5.1.0’da target
parametresini kullanma desteği kaldırıldı. Bunun yerine route
parametresini kullanın.
1.35 Apache CGI ile HTTP kimlik doğrulaması kullanabilir miyim?¶
Evet. Ancak aşağıdaki yeniden yazma kuralını kullanarak kimlik doğrulaması değişkenini CGI’a geçirmeniz gerekir:
RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
1.36 “500 İç Sunucu Hatası” hatası alıyorum.¶
Bunun için çok açıklama olabilir ve sunucunuzun hata günlük dosyasına bir bakın, bir ipucu verebilir.
1.37 Farklı makinelerde küme olarak phpMyAdmin çalıştırıyorum ve tanımlama bilgisi kimlik doğrulamasında parola şifreleme çalışmıyor.¶
Eğer küme farklı yapılardan oluşuyorsa, şifreleme/çözme için PHP kodu doğru çalışmayacaktır. Bunun nedeni kod içinde işlevleri paketleme/açma işlevlerinin kullanımıdır. Tek çözüm bu durumda iyi çalışan openssl uzantısı kullanmaktır.
1.38 Suhosin etkinleştirilen bir sunucuda phpMyAdmin kullanabilir miyim?¶
Evet ama Suhosin’in varsayılan yapılandırma değerlerinin bazı işlemlerle sorunlara neden olduğu bilinir, örneğin çok sütun ile ve primary key yoksa veya metinsel primary key ile bir tabloyu düzenlediğinizde.
Suhosin yapılandırması bazı durumlarda bozukluklara yol açabilir ve tek HTTP isteğinde büyük miktarlarda sütunların aktarılması gereken benzeri bir uygulama olan phpMyAdmin gibi tamamen önleyemez, Suhosin önlemeyi denediği şey neyse. Genel olarak tüm suhosin.request.*
, suhosin.post.*
ve suhosin.get.*
yönergeleri phpMyAdmin kullanılabilirliği üzerinde olumsuz etkilere sahip olabilir. Hangi sınırın değişken düşümlerine neden olduğunu her zaman hata günlüklerinizde bulabilirsiniz, böylece sorunu teşhis edebilir ve eşleşen yapılandırma değişkenlerini ayarlayabilirsiniz.
Çoğu Suhosin yapılandırma seçenekleri için varsayılan değerler pek çok senaryoda çalışacaktır, ancak en az aşağıdaki parametreleri ayarlamak isteyebilirsiniz:
- suhosin.request.max_vars artırılmalıdır (örn. 2048)
- suhosin.post.max_vars artırılmalıdır (örn. 2048)
- suhosin.request.max_array_index_length artırılmalıdır (örn. 256)
- suhosin.post.max_array_index_length artırılmalıdır (örn. 256)
- suhosin.request.max_totalname_length artırılmalıdır (örn. 8192)
- suhosin.post.max_totalname_length artırılmalıdır (örn. 8192)
- suhosin.get.max_value_length artırılmalıdır (örn. 1024)
- suhosin.sql.bailout_on_error etkisizleştirilmiş olması gerekir (varsayılan)
- suhosin.log.* SQL ‘e dahil edilmemeli, yoksa büyük yavaşlama yaşarsınız
- suhosin.sql.union etkisizleştirilmek zorundadır (varsayılan olan).
- suhosin.sql.multiselect etkisizleştirilmek zorundadır (varsayılan olan).
- suhosin.sql.comment etkisizleştirilmek zorundadır (varsayılan olan).
Güvenliği daha da artırmak için ayrıca bu değişiklikleri öneririz:
- suhosin.executor.include.max_traversal yerel dosya ek saldırılarına karşı bir azaltıcı etken olarak etkinleştirilmelidir. Bunu ReCaptcha kütüphanesi ile kullanılan
../
gibi 2’ye ayarlanmasını öneririz. - suhosin.cookie.encrypt etkinleştirilmelidir.
- suhosin.executor.disable_emodifier etkinleştirilmelidir.
Aynı zamanda $cfg['SuhosinDisableWarning']
kullanarak uyarıyı etkisizleştirebilirsiniz.
1.39 Https yoluyla bağlanmayı denediğimde, oturum açabiliyorum ama ondan sonra bağlantım http’ye yeniden geri yönlendiriliyor. Bu davranışa ne neden olabilir?¶
Buna, sitenin https kullandığı bilgisine sahip olmayan PHP betikleri gerçeği neden olur. Kullanılan web sunucusuna bağlı olarak, buna erişmek için kullanılan URL ve şema hakkkında PHP’nin bilgi almasına izin vernek için bunu yapılandırmalısınız.
Örneğin Apache’de yapılandırma içinde SSLOptions
ve StdEnvVars
yönergelerini etkinleştirdiğinizden emin olun.
Ayrıca bkz.
1.40 Apache ters proksi yoluyla phpMyAdmin’e eriştiğimde, tanımlama bilgisiyle oturum açma çalışmıyor.¶
Tanımlama bilgisi kimlik doğrulaması kullanabilmek için Apache, ayarlı tanımlama bilgisi üst bilgilerini yeniden yazacağını bilmek zorundadır. Apache 2.2 belgelerinden örnek:
ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/
Not: eğer arka uç url http://sunucu/~kullanici/phpmyadmin
gibi görünüyorsa, ProxyPassReverse* satırlarındaki tilda (~), %7E olarak kodlanmış url olmak zorundadır. Bu phpmyadmin’e özgü değildir, sadece Apache’nin davranışıdır.
ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
ProxyPassReverse /mirror/foo/ http://backend.example.com/%7Euser/phpmyadmin
ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo
1.41 Veritabanını görüntülediğimde ve yetkilerini görmek için sorduğumda, bilinmeyen bir sütunla ilgili hata alıyorum.¶
MySQL sunucusunun yetki tabloları güncel değil, sunucuda mysql_upgrade komutunu çalıştırmanız gerekir.
1.42 Robot’ları phpMyAdmin’e erişimini nasıl önleyebilirim?¶
Kullanıcı tanıtıcı alanı tabanlı erişimi süzmek için .htaccess dosyasına çeşitli kuralları ekleyebilirsiniz. Bu kurtulmak için oldukça kolaydır ama en azından bazı robot’ların kurulumunuza erişimini önleyebilir.
RewriteEngine on
# Allow only GET and POST verbs
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ [NC,OR]
# Ban Typical Vulnerability Scanners and others
# Kick out Script Kiddies
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|wkito|pikto|scan|acunetix).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
# Ban Search Engines, Crawlers to your administrative panel
# No reasons to access from bots
# Ultimately Better than the useless robots.txt
# Did google respect robots.txt?
# Try google: intitle:phpMyAdmin intext:"Welcome to phpMyAdmin *.*.*" intext:"Log in" -wiki -forum -forums -questions intext:"Cookies must be enabled"
RewriteCond %{HTTP_USER_AGENT} ^.*(AdsBot-Google|ia_archiver|Scooter|Ask.Jeeves|Baiduspider|Exabot|FAST.Enterprise.Crawler|FAST-WebCrawler|www\.neomo\.de|Gigabot|Mediapartners-Google|Google.Desktop|Feedfetcher-Google|Googlebot|heise-IT-Markt-Crawler|heritrix|ibm.com\cs/crawler|ICCrawler|ichiro|MJ12bot|MetagerBot|msnbot-NewsBlogs|msnbot|msnbot-media|NG-Search|lucene.apache.org|NutchCVS|OmniExplorer_Bot|online.link.validator|psbot0|Seekbot|Sensis.Web.Crawler|SEO.search.Crawler|Seoma.\[SEO.Crawler\]|SEOsearch|Snappy|www.urltrends.com|www.tkl.iis.u-tokyo.ac.jp/~crawler|SynooBot|crawleradmin.t-info@telekom.de|TurnitinBot|voyager|W3.SiteSearch.Crawler|W3C-checklink|W3C_Validator|www.WISEnutbot.com|yacybot|Yahoo-MMCrawler|Yahoo\!.DE.Slurp|Yahoo\!.Slurp|YahooSeeker).* [NC]
RewriteRule .* - [F]
1.43 Yüzlerce sütun içeren tablomun yapısını neden görüntüleyemiyorum?¶
Çünkü PHP’nizin memory_limit
değeri çok düşük; php.ini
içinde ayarlayın.
1.44 phpMyAdmin’in diskteki yüklü boyutunu nasıl düşürebilirim?¶
Bazı kullanıcılar phpMyAdmin yükleme boyutunu düşürebilmeyi istedi. Bu önerilmez ve üzerinde eksik özellikler karışıklığa neden olabilir, ama yapılabilir. Kaldırıldığında hassas bir şekilde küçültmeye yarayan işlevsellik ve dosyalar listesi:
./locale/
klasörü, veya kullanılmayan alt klasörleri (arayüz çevirileri)- Varsayılan tema pmahomme dışında
./public/themes/
içindeki kullanılmayan temalar. ./libraries/language_stats.inc.php
(çeviri istatistikleri)./doc/
(belgeler)./setup/
(kur betiği)./examples/
(yapılandırma örnekleri)./sql/
(gelişmiş işlevsellikleri yapılandırmak için SQL betikleri)./js/src/
(./js/dist/ yeniden oluşturulacak kaynak dosyalar)./js/global.d.ts
JS türü bildirim dosyası- rm -rv satıcı/tecnickcom/tcpdf && composer dump-autoload –no-interaction –optimize –dev komutunu çalıştırın (PDF’ye dışa aktarma)
- rm -rv satıcı/williamdes/mariadb-mysql-kbs && composer dump-autoload –no-interaction –optimize –dev komutunu çalıştırın (MariaDB ve MySQL belgelerine harici bağlantılar)
- rm -rv satıcı/kod-lts/u2f-php-server && composer dump-autoload –no-interaction –optimize –dev komutunu çalıştırın (U2F ikinci etkenli kimlik doğrulaması)
- rm -rv satıcı/pragmarx/* && composer dump-autoload –no-interaction –optimize –dev komutunu çalıştırın (2FA ikinci etkenli kimlik doğrulaması)
- rm -rv satıcı/bacon/bacon-qr-code && composer dump-autoload –no-interaction –optimize –dev komutunu çalıştırın (2FA ikinci etkenli kimlik doğrulaması için QR kodu oluşturma)
1.45 Oturum açmaya çalışırken bilinmeyen kimlik doğrulama yöntemi caching_sha2_password hakkında bir hata iletisi alıyorum¶
MySQL sürüm 8 veya daha yenisini kullanarak oturum açarken, şu gibi bir hata iletisi ile karşılaşabilirsiniz:
mysqli_real_connect(): Sunucu, istemci için bilinmeyen kimlik doğrulama yöntemi istedi [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): Sunucu, istemci için bilinmeyen kimlik doğrulama yöntemi istedi
Bu hata, PHP ve MySQL arasındaki sürüm uyumluluk sorunu yüzündendir. MySQL projesi yeni bir kimlik doğrulama yöntemini (bizim denemelermiz bunun sürüm 8.0.11 ile başladığını göstermektedir) tanıttı ancak PHP bu kimlik doğrulama yöntemini kullanma yeteneğini içermiyor. PHP, bunun PHP 7.4 sürümünde düzeltildiğini bildiriyor.
Bunu yaşayan kullanıcılara PHP kurulumlarını yükseltmeleri tavsiye edilir, ancak geçici bir çözümü var. MySQL kullanıcı hesabınız, şöyle bir komut ile eski kimlik doğrulamasını kullanmak için ayarlanabilir
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Yapılandırma¶
2.1 “Uyarı: Başlık bilgisi eklenemiyor - … tarafından başlıklar zaten gönderildi” hata mesajı görüntüleniyor, sorun nedir?¶
config.inc.php
dosyanızı düzenleyin ve <?php
etiketinden önce ne başında ve ?>
etiketinden sonra ne de sonunda hiçbir şey (yani boş satırlar, boşluklar, karakterler olmasın…) olmadığından emin olun.
2.2 phpMyAdmin, MySQL’e bağlanamıyor. Yanlış olan nedir?¶
Ya PHP ayarınızla ile ilgili bir hata vardır ya da kullanıcı adınız/parolanız yanlıştır. mysql_connect kullanan küçük bir betik yapmayı deneyin ve eğer çalışırsa görürsünüz. Eğer çalışmazsa, PHP içinde MySQL desteğini bile derlememiş olabilirsiniz.
2.3 “Uyarı: MySQL Bağlantısı Başarısız: Yerel MySQL sunucusuna ‘/tmp/mysql.sock’ (111) soketi aracılığıyla bağlanılamıyor…” hata mesajı görüntüleniyor. Ne yapabilirim?¶
Hata iletisi ayrıca şu olabilir: Hata #2002 - Sunucu yanıt vermiyor (veya yerel MySQL sunucusunun soketi şu anda doğru olarak yapılandırılmadı).
Önce, MySQL tarafından kullanılan soketi belirlemeniz gerekir. Bunu yapmak için sunucunuza bağlanın ve MySQL bin dizinine gidin. Bu dizinde mysqladmin adında bir dosya olmalı. ./mysqladmin variables
yazın ve bu size MySQL sunucunuz hakkında bir takım bilgi vermeli, soket dahil (/tmp/mysql.sock, örneğin). Ayrıca bağlantı bilgisi için ISP’nize sorabilirsiniz ya da eğer kendinizde barındırıyorsanız, ‘mysql’ komut satırı istemcisinden bağlanın ve bağlantı türünü ve soketi ya da bağlantı noktasını almak için ‘status’ yazın.
Ondan sonra, PHP’ye bu soketi kullanmasını söylemeniz gerekir. Bunu php.ini
içindeki tüm PHP için ya da sadece config.inc.php
içinde sadece phpMyAdmin için yapabilirsiniz. Örneğin: $cfg['Servers'][$i]['socket']
Lütfen aynı zamanda bu dosyanın izinlerinin, web sunucunuz tarafından okunabilir olması için izin verdiğinden emin olun.
RedHat-Box’ımda MySQL soketi /var/lib/mysql/mysql.sock. php.ini
dosyanızın içinde bir satır bulacaksınız
mysql.default_socket = /tmp/mysql.sock
şuna değiştirin
mysql.default_socket = /var/lib/mysql/mysql.sock
Ondan sonra apache’yi yeniden başlatın ve çalışacaktır.
Ayrıca MySQL belgelemesinin ilgili bölümüne bir gözatın.
2.4 phpMyAdmin’i çalıştırmayı denediğimde tarayıcımda hiçbir şey görüntülenmiyor, ne yapabilirim?¶
phpMyAdmin yapılandırma dosyasında $cfg['OBGzip']
yönergesini ayarlamayı deneyin. Bu bazen yardımcı olur. Ayrıca PHP sürüm numarasına bir göz atın: eğer “b” veya “alpha” içeriyorsa, PHP’nin deneme sürümünü çalıştırıyorsunuz anlamına gelir. Bu o kadar iyi bir fikir değildir, lütfen düz gözden geçirmeye yükseltin.
2.5 Her defasında satır eklemek veya değiştirmek ya da bir veritabanı veya bir tablo kaldırmak istiyorum, bir hata 404 (sayfa bulunamadı) görüntüleniyor veya HTTP ya da tanımlama bilgisi kimlik doğrulaması ile, tekrar oturum açmak için soruyor. Yanlış olan nedir?¶
Web sunucusu kurulumunuzun ya PHP_SELF ya da REQUEST_URI değişkenlerini doğru doldurduğunu kontrol edin.
Eğer phpMyAdmin’i ters proksi arkasında çalıştırıyorsanız, kurulumunuz ile uyuşması için lütfen phpMyAdmin yapılandırma dosyasındaki $cfg['PmaAbsoluteUri']
yönergesini ayarlayın.
2.6 Localhost’um için bağlantı noktası yönlendirilmiş bir anamakinedeki MySQL Sunucusuna erişmeyi denerken “Şu kullanıcı için erişim reddedildi: ‘root@localhost’ (Parola kullanıyor: EVET)” hatası alıyorum.¶
Başka bir anamakineye bağlantı noktası yönlendirmesi yoluyla yeniden yönlendirdiğiniz localhost’unuzda bir bağlantı noktası kullanırken, MySQL beklendiği gibi localhost’u çözmüyor. Erik Wasser şöyle açıklıyor: Çözümü: eğer anamakineniz “localhost” ise MySQL (komut satırı aracı mysql de) her zaman bir şeyleri hızlandırmak için soket bağlantısı kullanmayı dener. Ve bu yapılandırma bağlantı noktası yönlendirmesiyle çalışmaz. Anamakine adı olarak “127.0.0.1” girerseniz, her şey doğru olur ve MySQL TCP bağlantısı kullanır.
2.7 Temaların kullanımı ve oluşturulması¶
Bakınız Özel Temalar.
2.8 “Eksik parametreler” hataları alıyorum, ne yapabilirim?¶
İşte kontrol etmeniz için birkaç nokta:
config.inc.php
içinde$cfg['PmaAbsoluteUri']
yönergesini boş bırakmayı deneyin. Ayrıca bakınız 4.7 Kimlik doğrulaması penceresi birden fazla görüntüleniyor, neden?.- Belki bozuk PHP kurulumuna sahipsiniz ya da Zend Optimizer’ınızı yükseltmeniz gerekli. <https://bugs.php.net/bug.php?id=31134> adresine bakın.
- Eğer ini yönergesi
varfilter.max_request_variables
ile Hardened PHP kullanıyorsanız, varsayılana (200) ayarlayın ya da başka bir düşük değere, eğer tablonuz yüksek sayıda sütuna sahipse, bu hatayı alabilirsiniz. Ona göre bu ayarı ayarlayın. (Klaus Dorninger’e ipucu için teşekkürler). php.ini
yönergesiarg_separator.input
içindeki “;” değeri bu hataya neden olacaktır. Onu “&;” ile değiştirin.- Eğer Suhosin kullanıyorsanız, istek sınırlarını arttırmak isteyebilirsiniz.
php.ini
içindekisession.save_path
yönergesinde belirtilmiş dizin mevcut değil ya da salt-okunur (buna PHP yükleyicisi içindeki hata neden olabilir).
2.9 Gönderme ilerlemesi çubuğu görme¶
Göndermeleriniz sırasında ilerleme çubuğunu görebilmeniz için sunucunuz uploadprogress’in uzantısına sahip olmak zorunda ve PHP 5.4.0 veya üzerini çalıştırıyor olmak zorundasınız. Dahası PHP’nizde JSON uzantısı etkinleştirilmiş olmak zorundadır.
Eğer PHP 5.4.0 veya yükseğini kullanılıyorsa, php.ini
dosyanız içindeki session.upload_progress.enabled
’ı, 1
olarak ayarlamak zorundasınız. Ancak, phpMyAdmin sürüm 4.0.4’ten başlayarak oturum tabanlı gönderme ilerlemesi sorunlu davranışlarından dolayı geçici olarak devre dışı bırakıldı.
2.10 Rastgele bayt dizgisi nasıl oluşturulur¶
Kriptografik kullanıma uygun bir rastgele bayt dizgisi oluşturmanın bir yolu, ‘random_bytes <https://www.php.net/tr/random_bytes>’_ :term:’PHP’ işlevini kullanmaktır. Bu işlev bir ikili dizgi döndürdüğünden, döndürülen değer, kopyalanmadan önce yazdırılabilir biçime dönüştürülmelidir.
Örneğin, $cfg['blowfish_secret']
yapılandırma yönergesi 32 bayt uzunluğunda bir dizgi gerektirir. Bu dizginin onaltılık gösterimini oluşturmak için aşağıdaki komut kullanılabilir.
php -r 'echo bin2hex(random_bytes(32)) . PHP_EOL;'
Yukarıdaki örnek şuna benzer bir çıktı verecektir:
f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851
Ve ardından bu onaltılık değer yapılandırma dosyasında kullanılabilir.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
sodium_hex2bin işlevi burada onaltılık değeri ikili biçime dönüştürmek için kullanılır.
Bilinen kısıtlamalar¶
3.1 HTTP kimlik doğrulaması kullanıldığında, oturumu kapatan bir kullanıcı aynı takma ad ile tekrar oturum açamaz.¶
Bu, phpMyAdmin tarafından kullanılan kimlik doğrulaması mekanizmasıyla (protokol) ilgilidir. Bu sorunu atlatmak için: sadece tüm açılmış tarayıcı pencerelerini kapatın ve ondan sonra phpMyAdmin’e geri dönün. Tekrar oturum açabilmelisiniz.
3.2 Sıkıştırılmış kipte büyük bir tablo dökümlendiğinde, bellek sınırı hatası veya zaman sınırı hatası alıyorum.¶
Sıkıştırılmış dökümler bellek içinde yapılır ve bu php’nin bellek sınırlamasından dolayı kısıtlıdır. gzip/bzip2 dışa aktarmaları için 2.5.4’ten bu yana $cfg['CompressOnFly']
(varsayılan olarak etkinleştirildi) kullanılarak bunun üstesinden gelinebilir. zip dışa aktarmaları bu yolla baş edemez, bu yüzden büyük döküm için zip dosyalarına ihtiyacınız olursa, başka bir yol kullanmak zorundasınız.
3.3 InnoDB tablolar ile, tablo veya sütunu yeniden adlandırdığımda, dış anahtar ilişkilerini kaybettim.¶
Bu bir InnoDB hatasıdır, <https://bugs.mysql.com/bug.php?id=21704> adresine bakın.
3.4 MySQL sunucusu dağıtıma ile paketlenmiş mysqldump aracıyla oluşturduğum dökümleri içe aktaramamaktayım.¶
Sorun mysqldump
’ın eski bir sürümünün oluşturduğu şunun gibi geçersiz açıklamalar:
-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54
Kodun geçersiz kısmı mysqldump ile oluşturulmuş her döküm içinde görünen, çizgilerden yapılmış yatay satırdır. Eğer dökümünüzü çalıştırmak istiyorsanız, geçerli MySQL içerisine döndürmek zorundasınız. Bu, ilk iki çizgiden sonra boşluk ya da önce # eklemek zorundasınız anlamına gelir: -- -------------------------------------------------------
veya #---------------------------------------------------------
3.5 İç içe klasörler kullanıldığında, yanlış şekilde çoklu hiyerarşiler görüntülenir.¶
Lütfen unutmayın aralarında herhangi bir karakter olmadan çok kez ayırma dizgisi kullanmamalısınız ya da tablo adınızın başında/sonunda. Eğer zorundaysanız, başka bir TableSeparator kullanmayı veya bu özelliği etkisizleştirmeyi düşünün.
Ayrıca bkz.
3.6 (geri alındı).¶
3.7 Çok sütunlu (100+) tablom var ve tabloya gözatmayı denediğimde “Uyarı: url ayrıştırılamaz” gibi bir dizi hata alıyorum. Bu nasıl düzeltilebilir?¶
Tablonuz ne primary key ne de unique key sahiptir, bu yüzden bu satırı tanımlamak için uzun ifade kullanmak zorundayız. Buna parse_url işlevi için sorunlar neden olur. Geçici çözüm primary key veya unique key oluşturmaktır.
3.8 Üzerine MIME-Dönüşümü koyduğum sütunların içinde (tıklanabilir) HTML-formları kullanamıyorum!¶
Çevreleyen form kalıbından dolayı (çoklu satır silme onay kutuları için), phpMyAdmin’nin sonuçları görüntülediği iç içe formlar tablo içerisine koyulamıyor. Eğer esas form kalıbı tbl_row_delete.php’yi hedef gösteren ile birlikte tutulursa ancak, tablo içerisinde herhangi bir form kullanabilirsiniz ve içerisine sadece kendi girdi öğelerinizi koyabilirsiniz. Eğer özel gönderi girdi alanı kullanıyorsanız, dönüşümlerdeki $HTTP_POST_VARS doğrulandığı yerde, sayfayı tekrar görüntülemek için form kendiliğinden gönderecektir. Dönüşümlerin nasıl etkin bir şekilde kullanılacağının eğitimi için resmi phpMyAdmin ana sayfasındaki Bağlantı bölümümüze bakın.
3.9 MySQL sunucusu için “–sql_mode=ANSI” kullandığımda hata mesajları alıyorum.¶
MySQL ANSI-uyumluluk kipinde çalıştığında, SQL’in nasıl yapılandırıldığında bazı başlıca farklılıklar vardır (<https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html> adresine bakın). Hepsinden önemlisi, tırnak karakteri (“), geçersiz SQL ifadeleri içerisinde çoğu dahili phpMyAdmin işlemlerini yapan dizgi tırnak karakteri olarak değil tanımlayıcı tırnak karakteri olarak yorumlanır. Bu davranış için geçici çözüm yoktur. Bu öğe için haber sorun #7383 içinde bildirilecektir.
3.10 Eşadlı ve birincil anahtar yok: SELECT’in sonuçları aynı değer ile bir sütundan daha fazlasını görüntülediğinde (örneğin SELECT soyadi from calisanlar where ilkadi like 'A%'
ve iki “Yavuz” değeri görüntülenir), Düzenle’ye tıklarsam istenilen satırı düzenlediğimden emin olamıyorum.¶
Lütfen tablonuzun primary key sahip olduğundan emin olun, böylece phpMyAdmin Düzenle ve Sil bağlantıları için bunu kullanabilir.
3.11 InnoDB tabloları için satır sayısı doğru değil.¶
phpMyAdmin satır sayısını getirmek için hızlı bir yöntem kullanır ve bu yöntem sadece InnoDB tabloları durumunda yaklaşık bir sayıyı döndürür. Bu sonuçları değiştirmenin bir yolu için $cfg['MaxExactCount']
yönergesine bakın, ama bunun performansta ciddi etkisi olmaktadır. Ancak, biri yaklaşık sayıya basitçe tıklayarak tam sayısı ile yaklaşık satır sayısını kolayca değiştirebilir. Bu aynı zamanda en altta görüntülenen satırlar toplamına bir defa tıklanarak tüm tablolar için yapılabilir.
Ayrıca bkz.
3.12 (geri alındı).¶
3.13 Bir tire içeren vt adını takiben USE
girdiğimde bir hata alıyorum.¶
MySQL 5.1.49 ile yaptığım denemeler gösterdi ki API, USE komutu için bu sözdizimini kabul etmiyor.
3.14 Sütunlardan birinde SELECT hakkına sahip olmadığımda tabloya gözatamıyorum.¶
Bu, başından beri phpMyAdmin’nin bilinen bir kısıtlamasıydı ve gelecekte de çözülmesi muhtemel değildir.
3.15 (geri alındı).¶
3.16 (geri alındı).¶
3.17 (geri alındı).¶
3.18 Çoklu tabloları içeren bir CSV dosyası içe aktardığımda, hepsi birlikte tek bir tabloya birleştiriliyor.¶
CSV biçimindeki tabloları ayırt etmek için güvenilir bir yol yoktur. Bir süreliğine çoklu tabloları içeren CSV dosyalarını parçalara ayırmak zorunda olacaksınız.
>3.19 Dosyayı içe aktardığımda ve phpMyAdmin uygun veri yapısını belirlediğinde sadece int, decimal ve varchar türlerini kullanıyor.¶
Şimdilik, içe aktarma türü saptama sistemi sadece bu MySQL türlerinden sütunlara atanabiliyor. Gelecekte, eklenecek olması daha büyük ihtimal ama şu anda yapıyı alışık olduğunuz göndererek içe aktarmayla düzenlemek zorundasınız. Ayrıca, şu gerçeği de unutmamalısınız ki phpMyAdmin uygun tür için sütun boyutu olarak verilen herhangi bir sütundaki en büyük öğe boyutunu kullanacaktır. Bu sütuna ekleyeceğiniz büyük öğeleri biliyorsanız ondan sonra buna göre sütun boyutlarını elle ayarlamalısınız. Bu, verim hatırına yapılır.
3.20 Yükseltmeden sonra, bazı yer imleri gitti ya da içerikleri gösterilemez durumda.¶
Belli bir noktada, yer imi içeriğini saklamak için kullanılan karakter grubu değişmiş. Yer iminizi daha yeni phpMyAdmin sürümünden yeniden oluşturmak daha iyidir.
3.21 Ş harfi gibi evrensel kodlar içeren bir kullanıcı adı ile oturum açamıyor.¶
Eğer MySQL varsayılan karakter grubu olarak utf-8 kullanması için yapılandırılmadığında bu olabilir. Bu, PHP ve MySQL sunucusunun nasıl biribirini etkilediğinin bir sınırlamasıdır; kimlik doğrulamasından önce PHP için karakter kümesini ayarlamanın hiçbir yolu yoktur.
Ayrıca bkz.
ISP’ler, çoklu kullanıcı kurulumları¶
4.1 Bir ISP’im var. Merkezi bir phpMyAdmin kopyasını kurabilir miyim veya her müşteri için yüklemem mi gerekir?¶
2.0.3 sürümünden bu yana, merkezi bir phpMyAdmin kopyasını tüm kullanıcılarınız için kurabiliyorsunuz. Bu özelliği geliştirilmesine NetCologne GmbH nazikçe sponsor oldu. Bu, doğru bir biçimde kurulu MySQL kullanıcı yönetimi ve phpMyAdmin HTTP ya da tanımlama bilgisi kimlik doğrulaması gerektirir.
Ayrıca bkz.
4.2 phpMyAdmin’ni kötü niyetli erişime karşı güvenli yapmanın tercih edilen yolu nedir?¶
Bu sisteminize bağlıdır. Eğer diğer insanlar tarafından erişilemeyen bir sunucu çalıştırıyorsanız, web sunucunuz ile paketlenmiş dizin koruması kullanmak yeterlidir (Apache ile .htaccess dosyaları kullanabilirsiniz, örneğin). Eğer diğer insanların sunucunuza telnet erişimi varsa, phpMyAdmin’in HTTP ya da tanımlama bilgisi kimlik doğrulamasını kullanmalısınız.
Öneriler:
config.inc.php
dosyanızchmod 660
yapılmalı.- Tüm phpMyAdmin dosyalarınız chown -R phpmy.apache yapılmış olmalı, phpmy, şifresini sadece sizin bildiğiniz kullanıcı ve apache, Apache’nin altında çalışan grup.
- PHP ve web sunucunuz için güvenlik önerilerini takip edin.
4.3 /lang veya /libraries içinde bir dosya olmamasıyla ilgili hatalar alıyorum.¶
php.ini
dosyasını kontrol edin ya da sistem yöneticinize kontrol etmesi için sorun. İçinde bir yerdeki include_path
“.” içermek zorundadır ve open_basedir
, eğer kullanılmışsa, phpMyAdmin’nin normal işlemine izin vermek için “.” ve “./lang” içermek zorundadır.
4.4 HTTP kimlik doğrulaması kullanırken phpMyAdmin sürekli “Erişim reddedildi” uyarısı veriyor.¶
Bu birkaç sebepten olabilir:
$cfg['Servers'][$i]['controluser']
ve/veya$cfg['Servers'][$i]['controlpass']
yanlıştır.- Oturum açma iletisinde belirttiğiniz kullanıcı adı/parola geçersizdir.
- phpMyAdmin dizini için zaten güvenlik mekanizması kurmuşsunuzdur, örn. .htaccess dosyası. Bu phpMyAdmin’nin kimlik doğrulamasına engel olacaktır, o yüzden kaldırın.
4.5 Kullanıcıların kendi veritabanlarını oluşturmasına izin vermek mümkün mü?¶
2.2.5’ten başlayarak, kullanıcı yönetimi sayfasında, kullanıcı için joker karakterli veritabanı adı girebilir (örneğin “joe%”) ve istediğiniz yetkileri verebilirsiniz. Örneğin, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
eklemek kullanıcıya kendi veritaban(larını)ını oluşturmasına/yönetmesine izin verecektir.
4.6 Anamakine tabanlı kimlik doğrulaması ilavelerini nasıl kullanabilirim?¶
Eğer eski bir .htaccess dosyasında varolan kurallarınız varsa, onları alabilir ve 'deny'
/'allow'
ve 'from'
dizgileri arasına kullanıcı adı ekleyebilirsiniz. Kurulumunuz bunu kullanmak için uygunsa, '%'
kullanıcı adı jokerini burada kullanmanın başlıca bir yararı olacaktır. Ardından yalnızca bu güncellenmiş satırları $cfg['Servers'][$i]['AllowDeny']['rules']
dizilimi içerisine ekleyebilirsiniz.
Eğer önceden yapılmış örnek isterseniz, bu kısmı deneyebilirsiniz. Özel ağ IP bloklarından başka herhangi bir ağa oturum açmasında ‘root’ kullancısına engel olur.
//block root from logging in except from the private networks
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = [
'deny root from all',
'allow root from localhost',
'allow root from 10.0.0.0/8',
'allow root from 192.168.0.0/16',
'allow root from 172.16.0.0/12',
];
4.7 Kimlik doğrulaması penceresi birden fazla görüntüleniyor, neden?¶
Eğer phpMyAdmin’i başlatmak için $cfg['PmaAbsoluteUri']
dizginiz içindeki ayarladığınızdan farklı bir URL kullanıyorsanız bu olur. Örneğin, eksik “www” ya da yapılandırma dosyasında tanımlanan bir etki alanı adını bir IP adresiyle girmek.
4.8 phpMyAdmin’i başlatan hangi parametreleri URL’de kullanabilirim?¶
phpMyAdmin başlatılırken, db
ve server
parametrelerini kullanabilirsiniz. Bu sonuncusu, ya sayısal anamakine indeksini (yapılandırma dosyasındaki $i
olan) ya da yapılandırma dosyasında bulunan anamakine adlarından birini içerebilir.
Örneğin, doğrudan belirli bir veritabanına atlamak için bir URL, https://ornek.com/phpmyadmin/?db=sakila
şeklinde yapılabilir.
4.9.0 sürümünde değişti: pma_username
ve pma_password
parametreleri kullanımı desteği phpMyAdmin 4.9.0 sürümünde kaldırılmıştır (bakınız PMASA-2019-4).
Tarayıcılar veya istemci İS¶
5.1 Yetersiz bellek hatası alıyorum ve 14 sütundan daha fazlasıyla bir tablo oluşturmayı denediğimde denetimlerim işlevsel olmuyor.¶
Sadece Win98/98SE altında bu sorunu yeniden üretebildik. WinNT4 veya Win2K altındaki denemede, 60 sütundan daha fazlasını kolayca oluşturabildik. Geçici çözüm daha küçük sütun sayısı oluşturmak, ondan sonra tablo özelliklerinize geri gelmeniz ve diğer sütunları eklemeniz.
5.2 Xitami 2.5b4 ile phpMyAdmin form alanlarını işlemiyor.¶
Bu phpMyAdmin sorunu değildir ama bilinen bir Xitami hatasıdır: formları kullanan her betik/web sitesi ile karşı karşıya geleceksiniz. Xitami sunucunuzu yükseltin ya da düşürün.
5.3 Konqueror (phpMyAdmin 2.2.2) ile tabloları dökümlerken sorunlarım oluyor.¶
Konqueror 2.1.1 ile: düz dökümler, zip ve gzip dökümleri sorunsuz çalışır, döküm için önerilen dosya adı hariç her zaman ‘tbl_dump.php’dir. bzip2 dökümleri çalışır görünmüyor. Konqueror 2.2.1 ile: düz dökümler çalışır; zip dökümler kullanıcının geçici dizini içinde yer alır, böylece Konqueror’u kapatmadan önce taşınmalıdırlar yoksa gözden kaybolurlar. gzip dökümleri hata mesajı verir. Konqueror 2.2.2 için denemenin yapılması gerekir.
5.4 Tanımlama bilgisi kimlik doğrulaması kipi kullanamıyorum çünkü Internet Explorer tanımlama bilgilerini hiç saklamıyor.¶
MS Internet Explorer tanımlama bilgileriyle ilgili olarak aslında hatalı görünür, an az 6 sürümüne kadar.
5.5 (geri alındı).¶
5.6 (geri alındı).¶
5.7 Tarayıcımı yeniliyorum (yeniden yüklüyorum) ve hoş geldiniz sayfasına geri geliyor.¶
Bazı tarayıcılar yenilemek istediğinizde çerçeve içerisinde sağ tıklamayı destekler, bunu sadece sağ çerçevede yapın.
5.8 Mozilla 0.9.7 ile sorgu kutusunda değiştirilmiş sorgu gönderirken sorunlar yaşıyorum.¶
Mozilla hatası gibi görünüyor: 0.9.6 tamamdır. Gözümüzü gelecek Mozilla sürümlerinin üzerinde tutacağız.
5.9 Mozilla 0.9.?’den 1.0’a ve Netscape 7.0-PR1 ile SQL-Sorgusu düzenleme alanında boşluk bırakamıyorum: sayfa aşağı kayıyor.¶
Bu bir Mozilla hatasıdır (BugZilla’da hata #26882’ye bakın).
5.10 (geri alındı).¶
5.11 Almanca harflerdeki üzerine koyulan çift noktalılar gibi Genişletilmiş-ASCII karakterler yanlış görüntüleniyor.¶
Lütfen tarayıcınızın karakter grubunu, phpMyAdmin’in başlangıç sayfasında seçmiş olduğunuz dil dosyasından birine ayarladığınızı garantileyin. Alternatif olarak çoğu tarayıcının en son sürümlerince desteklenen otomatik algılama kipini deneyebilirsiniz.
5.12 Mac OS X Safari tarayıcısı özel karakterleri “?” olarak değiştiriyor.¶
Bu sorun Chimera, Netscape ve Mozilla’nın bu soruna sahip olmadığını ekleyen macOS kullanıcısı tarafından raporlanmıştır.
5.13 (geri alındı)¶
5.14 (geri alındı)¶
5.15 (geri alındı)¶
5.16 Internet Explorer ile “Erişim reddedildi” Javascript hataları alıyorum. Ya da phpMyAdmin’i Windows altında çalışır hale getiremiyorum.¶
Lütfen aşağıdaki noktaları kontrol edin:
- Belki bir IP adresi için
config.inc.php
içindeki$cfg['PmaAbsoluteUri']
ayarınızı tanımladınız ve phpMyAdmin’i bir etki alanı adını içeren URL ya da tersi durum ile başlatıyorsunuz. - IE ve/veya Microsoft Güvenlik Merkezi içindeki güvenlik ayarları çok yüksek, bu nedenle betiklerin çalıştırılmasını engelliyor.
- Windows Güvenlik Duvarı Apache ve MySQL’i engelliyor. “Gelen” ve “Giden” yönlerindeki HTTP bağlantı noktalarına (80 veya 443) ve MySQL bağlantı noktasına (genellikle 3306) izin vermelisiniz.
5.17 Firefox ile veri satırlarını silemiyorum ya da veritabanını kaldıramıyorum.¶
Birçok kullanıcının da onayladığı soruna, Firefox’lara Tabbrowser Uzantıları eklentisini kurmak neden oluyor.
5.18 (geri alındı)¶
5.19 Tarayıcımda JavaScript hataları alıyorum.¶
Sorunlar tarayıcı uzantılarının bazı kombinasyonları ile raporlandı. Sorunu gidermek için tüm uzantıları etkisizleştirin ondan sonra sorunun devam edip etmediğini görmek için tarayıcı önbelleğinizi temizleyin.
5.20 İçerik Güvenlik İlkesi’nin ihlal edilmesi ile ilgili hatalar alıyorum.¶
Şunun gibi hatalar görürseniz:
Refused to apply inline style because it violates the following Content Security Policy directive
Buna genellikle İçerik Güvenlik İlkesi başlıklarını yanlışlıkla yeniden yazan bazı yazılımlar neden olur. Genellikle buna böyle hatalara neden olan antivirüs proksi veya tarayıcı eklentileri neden olur.
Eğer bu hataları görürseniz, antivirus içindeki HTTP proksiyi etkisizleştirmeye ya da İçerik Güvenlik İlkesi’ni yeniden yazmayı etkisizleştirmeye çalışın. Eğer bu yardımcı olmazsa, tarayıcı uzantılarını etkisizleştirmeyi deneyin.
Alternatif olarak bu aynı zamanda sunucu yapılandırma sorunu olabilir (eğer web sunucusu İçerik Güvenlik İlkesi başlıklarının yayınlanması için yapılandırılırsa, phpMyAdmin’den geleni geçersiz kılabilirler).
Bu tür hatalara neden olduğu bilinen programlar:
- Kaspersky Internet Security
5.21 Tabloya gözatarken ya da SQL sorgusu yürütürken potansiyel olarak güvenli olmayan işlem ile ilgili hata iletisi alıyorum.¶
Şunun gibi hatalar görürseniz:
A potentially unsafe operation has been detected in your request to this site.
Buna genellikle süzme istekleri yapan web uygulaması güvenlik duvarı neden olur. SQL eklemeyi önlemeye çalışır, ancak phpMyAdmin SQL sorgularını yürütmek için tasarlanmış bir araçtır, böylece onu kullanılamaz hale getirir.
Lütfen phpMyAdmin betiklerine web uygulaması güvenlik duvarı ayarlarından izin verin ya da tamamen phpMyAdmin yolu için etkisizleştirin.
Bu tür hatalara neden olduğu bilinen programlar:
- Wordfence Web Uygulaması Güvenlik Duvarı
phpMyAdmin kullanmak¶
6.1 Tabloya yeni satırları ekleyemiyorum / tablo oluşturamıyorum - MySQL, SQL hatası getirtiyor.¶
SQL hatasını dikkatli bir şekilde inceleyin. Çoğu zaman soruna yanlış sütun türü belirlenmesi neden olur. Genel hatalar:
- Bağımsız boyut değişkeni olmadan
VARCHAR
kullanmak - Bağımsız boyut değişkeni olmadan
TEXT
veyaBLOB
kullanmak
Aynı zamanda sözdiziminizin doğru olduğunu onaylamak için MySQL kılavuzundaki sözdizimi bölümüne bir bakın.
6.2 Bir tablo oluşturduğumda, iki sütun için indeks ayarlıyorum ve phpMyAdmin bu iki sütunla sadece bir indeks oluşturuyor.¶
Çoklu sütun indeksi oluşturmanın yolu budur. Eğer iki indeks isterseniz, ilkini tablo oluştururken oluşturun, kaydedin, ondan sonra tablo özelliklerini görüntüleyin ve diğer indeksi oluşturmak için İndeks bağlantısına tıklayın.
6.3 Tablomun içine boş değer nasıl eklerim?¶
2.2.3 sürümünden bu yana, boş yapılabilen her sütun için onay kutusuna sahipsiniz. 2.2.3’ten önce, sütunun değeri olarak tırnaksız “null” girmek zorundaydınız. 2.5.5 sürümünden bu yana, gerçek NULL değeri almak için onay kutusunu kullanmak zorundasınız, bu yüzden eğer “NULL” girerseniz, bu, sütunda harfi harfine NULL istiyorsunuz anlamına gelir ve NULL değeri değil (bu PHP4’te çalışır).
6.4 Veritabanımı veya tablomu nasıl yedekleyebilirim?¶
Gezinti panelinde veritabanı veya tablo adına tıklayın, özellikleri görüntülenecektir. Ondan sonra menüde, “Dışa Aktar”a tıklayın, yapıyı, veriyi veya her ikisini dökümleyebilirsiniz. Bu, veritabanınızı/tablonuzu yeniden oluşturmak için kullanılabilir standart SQL ifadeleri üretecek. “Dosyayı farklı kaydet”i seçmeniz gerekecek, böylece phpMyAdmin çıkan dökümü yerinizin olduğu yere iletebilir. PHP yapılandırmanıza bağlı olarak dökümü sıkıştırmak için seçenekleri göreceksiniz. Aynı zamanda $cfg['ExecTimeLimit']
yapılandırma değişkenine bakın. Bu konuda ilave yardım için bu belgede “döküm” kelimesini arayın.
6.5 Döküm kullanarak veritabanımı veya tablomu nasıl geri yüklerim (gönderirim)? “.sql” dosyasını nasıl çalıştırabilirim?¶
Gezinti panelinde veritabanı adına tıklayın, özellikleri görüntülenecektir. Sağ–taraftaki çerçeveden (veya phpMyAdmin sürümünüz 2.7.0’dan öncesiyse, “SQL”den) sekmeler listesinden “İçe Aktar”ı seçin. “İçe Aktarmak için Dosya” bölümünde, “Bilgisayarınıza gözat” kısmında döküm dosya adınızın yolu için Dosya Seçin düğmesini kullanın. Ondan sonra Git’e tıklayın. 2.7.0 sürümü ile içe aktarma motoru yeniden yazıldı, eğer mümkünse yeni özelliklerinin avantajlarından faydalanmak için yükseltmeniz önerilir. Bu konuda ilave yardım için bu belgede “gönderme” kelimesini arayın.
Not: Eski MySQL sürümlerinden daha yeni MySQL sürümlerine aktarılan dökümlerin içe aktarılırken oluşan hataları için, lütfen bakınız 6.41 Eski MySQL sürümlerinden (5.7.6 öncesi) daha yeni MySQL sürümlerine (5.7.7+) aktarılan dökümler içe aktarılırken içe aktarma hataları alıyorum, ancak aynı eski sürümlere geri aktarıldığında sorunsuz çalışırlar mı ?.
6.6 Örnekle sorgulamada ilişki tablosunu nasıl kullanabilirim?¶
İşte persons, towns ve countries tabloları ile bir örnek, “mydb” veritabanında bulunanların tümü. Eğer pma__relation
tablosuna sahip değilseniz, yapılandırma bölümünde açıklandığı gibi oluşturun. Ondan sonra örnek tabloları oluşturun:
CREATE TABLE REL_countries (
country_code char(1) NOT NULL default '',
description varchar(10) NOT NULL default '',
PRIMARY KEY (country_code)
) ENGINE=MyISAM;
INSERT INTO REL_countries VALUES ('C', 'Canada');
CREATE TABLE REL_persons (
id tinyint(4) NOT NULL auto_increment,
person_name varchar(32) NOT NULL default '',
town_code varchar(5) default '0',
country_code char(1) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', 'C');
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
CREATE TABLE REL_towns (
town_code varchar(5) NOT NULL default '0',
description varchar(30) NOT NULL default '',
PRIMARY KEY (town_code)
) ENGINE=MyISAM;
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
INSERT INTO REL_towns VALUES ('M', 'Montréal');
Uygun bağlantıyı kurmak ve bilgiyi görüntülemek için:
- “REL_persons” tablosunda Yapı’ya tıklayın, ondan sonra İlişki görünümüne
- “town_code” için aşağı açılır menülerden seçin, dış veritabanı, tablo ve sütun için sırasıyla “mydb”, “REL_towns”, “town_code”
- “country_code” için aşağı açılır menülerden seçin, dış veritabanı, tablo ve sütun için sırasıyla “mydb”, “REL_countries”, “country_code”
- “REL_towns” tablosunda Yapı’ya tıklayın, ondan sonra İlişki görünümüne
- “Görüntülemek için sütun seçin” içinde, “açıklama”yı seçin
- “REL_countries” tablosu için önceki iki adımı tekrarlayın
Ondan sonra bunun gibi deneyin:
- Gezinti panelinde vt adınıza tıklayın
- “Sorgu”yu seçin
- Tabloları kullanın: persons, towns, countries
- “Sorguyu güncelle”ye tıklayın
- Sütun satırında, persons.person_name seçin ve “Göster” işaretleme kutusuna tıklayın
- Aynısını diğer 2 sütundaki towns.description ve countries.descriptions için yapın
- “Sorguyu güncelle”ye tıklayın ve doğru birleştirmelerin oluşturulduğunu sorgu kutusu içinde göreceksiniz
- “Sorguyu gönder”e tıklayın
6.7 “Görüntüleme sütunu” özelliğini nasıl kullanabilirim?¶
Önceki örnekten başlayarak, yapılandırma bölümünde açıklandığı gibi pma__table_info
oluşturun, ondan sonra persons tablonuza gözatın ve fareyi town kodu ya da country kodunun üzerine götürün. Ayrıca “görüntüleme sütununun” etkinleştirdiği ilave bir özellik için bakınız 6.21 Düzenle/ekle kipinde, bazı dış tablo tabanlı, bir sütun için olası değerlerin listesini nasıl görebilirim?: olası değerlerin aşağı açılır listesi.
6.8 Veritabanımın PDF şemasını nasıl yapabilirim?¶
Önce “relation”, “table_coords” ve “pdf_pages” yapılandırma değişkenleri doldurulmak zorundadır.
- Gezinti panelinde veritabanınızı seçin.
- En üstte gezinti çubuğundaki “Tasarımcı”yı seçin.
- Tabloları istediğiniz gibi taşıyın.
- Sol menüden “Şemayı dışa aktar”ı seçin.
- Dışa aktarma kipine bağlı açılacak.
- PDF olarak dışa aktarma türünü seçin, diğer ayarları yapabilirsiniz.
- Formu gönderin ve dosya indirilmeye başlayacak.
Ayrıca bkz.
6.9 phpMyAdmin sütunlarımdan birinin türünü değiştiriyor!¶
Hayır, bu, sessiz sütun türü değiştirmeyi yapan MySQL’dir.
6.10 Bir yetki oluşturulduğunda, veritabanı adında alttan çizgisi olanlarda ne oluyor?¶
Eğer alttan çizgiden önce ters eğik çizgi koymazsanız, bu joker karakter kabul edilir ve alttan çizgi “herhangi bir karakter” anlamına gelir. Bu yüzden, eğer veritabanı adı “benim_vt” ise, kullanıcı yetkileri benim1vt, benim2vt’ye … alacaktır. Eğer alttan çizgiden önce ters eğik çizgi koyarsanız, bu, veritabanı adı gerçek bir alttan çizgiye sahip olacaktır anlamına gelir.
6.11 İstatistikler sayfalarındaki garip sembol ø nedir?¶
“Ortalama” anlamına gelir.
6.12 Bazı Dışa Aktarma seçeneklerini anlamak istiyorum.¶
Yapı:
- Eğer içe aktarma sırasında zaten varsa, “DROP TABLE ekle” MySQL’e tabloyu kaldırmasını söyleyen bir satır ekleyecektir. Dışa aktarmanızdan sonra tabloyu KALDIRMAZ, sadece içe aktarma dosyasını etkiler.
- “If Not Exists” sadece eğer tablo mevcut değilse tablo oluşturacaktır. Yoksa, eğer tablo adı mevcutsa ama farklı bir yapısı varsa, hata alabilirsiniz.
- “AUTO_INCREMENT değeri ekle”, AUTO_INCREMENT değerinin (eğer varsa) yedeklemeye dahil edileceğini garanti eder.
- “Tablo ve sütun adlarını ters tırnaklarla kapattır”, sütun ve tablo adlarının özel karakterlerle biçimlenmiş korunmasını garanti eder.
- “Açıklamalara ekle”, sütun açıklamalarını, ilişkileri ve ortam türleri grubunu SQL açıklamaları (/* xxx */) olarak döküm içindeki pmadb içine dahil eder.
Veri:
- “Tam eklemeler” her INSERT komutunda sütun adlarını ekler, daha iyi belgeleme için (ama sonucu daha büyük bir dosyadır).
- “Gelişmiş eklemeler” INSERT eylemini ve tablo adını sadece bir kez kullanarak kısa döküm dosyası sağlar.
- “Gecikmeli eklemeler” en iyi MySQL kılavuzunda - INSERT DELAYED Sözdizimi açıklanır.
- “Yoksayılan eklemeler” hatalar yerine uyarı olarak davranır. Yine, daha fazla bilgi MySQL kılavuzunda - INSERT Sözdizimi sağlanır, ama aslında bununla seçilmiştir, bütün ifadenin başarısız olmasına neden olmaktansa geçersiz değerler ayarlanır ve eklenir.
6.13 Adının içinde nokta olan veritabanı oluşturmak istiyorum.¶
Bu kötü bir fikirdir çünkü MySQL içinde “veritabanı.tablo” sözdizimi, veritabanı ve tablo adını referans gösteren normal bir yoldur. Daha kötüsü, MySQL genellikle veritabanını nokta ile oluşturmanıza izin verir ama ondan sonra bununla çalışamazsınız, ne de silebilirsiniz.
6.14 (geri alındı).¶
6.15 Bir BLOB sütunu eklemek ve içine indeks koymak istiyorum ama MySQL, “BLOB sütunu ‘…’ anahtar uzunluğu olmadan anahtar belirlemede kullanıldı” diyor.¶
Bunu yapmanın doğru yolu, herhangi bir indeks olmaksızın sütun oluşturmak, ondan sonra tablo yapısını görüntülemek ve “Bir indeks oluştur” iletisini kullanmak. Bu sayfada, BLOB sütununuzu seçebileceksiniz ve BLOB sütununda bir indeks oluşturmak için şart olan indekse boyut ayarlayabileceksiniz.
6.16 Bir yığın düzenleme alanı ile sayfa içinde nasıl basitçe taşıyabilirim?¶
Çoğu sayfada pek çok düzenleme alanı (tablo yapısı değişiklikleri, satır düzenleme, vs.) ile taşımak için Ctrl+ok tuşlarını (Safari’de Option+Ok tuşları) kullanabilirsiniz.
6.17 Dönüşümler: Kendi mime türümü giremiyorum! Öyleyse yararlı olan bu özellik nedir?¶
Eğer dönüşümleri onlara koyamazsanız tanımlanan mime türleri kullanımda olmaz. Yoksa sütuna sadece açıklama koyabilirdiniz. Çünkü kendi mime türünüzü girmek ciddi sözdizimi kontrol sorunları ve doğrulamasına neden olacaktır, bu yüksek riskte yanlış kullanıcı girdisi durumuna sokar. Bunun yerine işlevleri ya da boş mime türü tanımlamalarını kullanarak mime türlerini başlatmak zorundasınız.
Ayrıca, kullanılabilir mime türlerinin bütün genel bakışına sahipsiniz. Tüm bu mime türlerini böyle ezbere bilen kim var ki istedikleri zaman girebilsinler?
6.18 Yer İmleri: Yer imlerini nerede saklayabilirim? Sorgu kutusunun altında neden hiç yer imlerini göremiyorum? Bu değişkenler ne için?¶
Yer imleri özelliğini kullanmak için phpMyAdmin yapılandırma depolaması’nı yapılandırmanız gerek. Bunu yaptıktan sonra SQL sekmesindeki yer imlerini kullanabilirsiniz.
Ayrıca bkz.
6.19 Dışa aktarılmış tabloyu dahil etmek için basit LATEX belgesini nasıl oluşturabilirim?¶
LATEX belgelerinize basitçe tabloyu dahil edebilirsiniz, en az örnek belge aşağıdaki gibi görünmelidir (table.tex
dosyasına aktarılmış tablo var farz edilirse):
\documentclass{article} % or any class you want
\usepackage{longtable} % for displaying table
\begin{document} % start of document
\include{table} % including exported table
\end{document} % end of document
6.20 Benim olmayan birçok veritabanı görüyorum ve onlara erişemiyorum.¶
Bu genel yetkilerden birine sahipsiniz: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Bu yetkiler aynı zamanda kullanıcılara tüm veritabanı adlarını görmelerini etkinleştirir. Bu yüzden eğer kullanıcılarınızın bu yetkilere ihtiyaçları yoksa, bunları kaldırabilirsiniz ve veritabanları listesi kısalacaktır.
Ayrıca bkz.
6.21 Düzenle/ekle kipinde, bazı dış tablo tabanlı, bir sütun için olası değerlerin listesini nasıl görebilirim?¶
Tablolar arasında ilgili bağlantıları kurmak zorundasınız ve aynı zamanda dış tablo içindeki “görüntüleme sütununu” ayarlayın. Örnek için bakınız 6.6 Örnekle sorgulamada ilişki tablosunu nasıl kullanabilirim?. Ondan sonra, eğer dış tablo içinde 100 değer veya daha azı varsa, değerlerin aşağı açılır listesi kullanılabilir olacaktır. Değerlerin iki listesini göreceksiniz, birinci liste anahtarı ve görüntüleme sütununu içerir, ikinci liste görüntüleme sütununu ve anahtarı içerir. Bunun nedeni ya anahtarın ya da görüntüleme sütununun ilk harfinin yazılabilmesidir. 100 değer veya daha fazlası için ayrı bir pencere görünecektir, dış anahtar değerlerine gözatmak ve birini seçmek için. 100 varsayılan sınırını değiştirmek için, $cfg['ForeignKeyMaxLimit']
yönergesine bakın.
6.22 Yer İmleri: Tablo için Gözatma kipine girildiğinde otomatik olarak varsayılan yer imini çalıştırabilir miyim?¶
Evet. Eğer yer imi tablo adıyla aynı etikete sahipse ve ortak yer imi değilse, çalıştırılacaktır.
Ayrıca bkz.
6.23 Dışa Aktar: phpMyAdmin’in Microsoft Excel dosyalarını dışa aktarabildiğini duydum?¶
Kutudan çıkar çıkmaz çalışan, Microsoft Excel için CSV kullanabilirsiniz.
3.4.5 sürümünde değişti: phpMyAdmin 3.4.5 sürümünden bu yana Microsoft Excel sürüm 97 ve yenisine doğrudan dışa aktarma için destek kaldırıldı.
6.24 Artık phpMyAdmin yerel MySQL 4.1.x sütun açıklamalarını destekliyor, pmadb içinde saklanan sütun açıklamalarıma ne oldu?¶
Tablonun pmadb-stili sütun açıklamalarının yerel biriyle otomatik yer değiştirmesi bu tablo için Yapı sayfasına girdiğinizde yapılır.
6.25 (geri alındı).¶
6.26 Satırların aralığını nasıl seçebilirim?¶
Aralığın ilk satırına tıklayın, shift (üst) tuşuna basılı tutun ve aralığın son satırına tıklayın. Bu, satırları gördüğünüz her yerde çalışır, örneğin Gözatma kipinde veya Yapı sayfasında.
6.27 Ne biçimde dizgiler kullanabilirim?¶
phpMyAdmin’nin biçim dizgilerini kabul ettiği tüm yerlerde, @VARIABLE@
genişlemesini ve strftime biçim dizgilerini kullanabilirsiniz. Genişletilmiş değişkenler içeriğe bağlıdır (örneğin, eğer seçili bir tabloya sahip değilseniz, tablo adını alamazsınız) ama aşağıdaki değişkenler kullanılabilir:
@HTTP_HOST@
- phpMyAdmin’i çalıştıran HTTP anamakinesi
@SERVER@
- MySQL sunucu adı
@VERBOSE@
$cfg['Servers'][$i]['verbose']
içinde tanımlandığı gibi ayrıntılı MySQL sunucusu adı@VSERVER@
- Eğer ayarlı ise ayrıntılı MySQL sunucusu adı, yoksa normaldir
@DATABASE@
- Şu anda açık olan veritabanı
@TABLE@
- Şu anda açık olan tablo
@COLUMNS@
- Şu anda açık olan tablo sütunları
@PHPMYADMIN@
- Sürümü ile phpMyAdmin
6.28 (geri alındı).¶
6.29 Sorgu sonuç tablomdan neden çizelge alamıyorum?¶
Her tablo çizelgeye koyulabilir değildir. Sadece bir, iki veya üç sütunlu tablolar çizelge olarak görselleştirilebilir. Üstelik tablo, onu anlamak için çizelge betiği olarak özel bir biçimde olmak zorundadır. Şimdilik desteklenen biçimler Çizelgeler içinde bulunabilir.
6.30 İçe Aktarma: ESRI Şekil dosyalarını nasıl içe aktarabilirim?¶
Aslında bir ESRI Şekil dosyası .shp dosyasının geometri verisini içeren ve .dbf dosyasının bu geometri verisiyle ilgili veriyi içeren çeşitli dosyalar grubudur. .dbf dosyasından okumak için dBase uzantısı (–enable-dbase) ile derlenmiş PHP’ye sahip olmanız gerekir. Yoksa sadece geometri verisi içe aktarılacaktır.
Bu dosyaların grubunu göndermek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
Gönderme dizinini $cfg['UploadDir']
ile yapılandırın, her iki .shp ve .dbf dosyalarını aynı dosya adı ile gönderin ve içe aktar sayfasından .shp dosyasını seçin.
.shp ve .dbf dosyalarıyla bir zip arşivi oluşturun ve içe aktarın. Bunun çalışması için, kullanıcının yazabileceği (örneğin './tmp'
) web sunucusunun olduğu yerde $cfg['TempDir']
dizgisini ayarlamanız gerekir.
UNIX-tabanlı sistemde geçici dizin oluşturmak için yapabileceğiniz:
cd phpMyAdmin
mkdir tmp
chmod o+rwx tmp
6.31 Tasarımcıda bir ilişkiyi nasıl oluştururum?¶
İlişkiyi seçmek için, tıklayın: Pembe olarak gösterilen görüntü sütununa. Alanı, görüntü sütunu olarak ayarlamak/ayarı kaldırmak için “Görüntülemek için sütun seçin” simgesine tıklayın, ondan sonra uygun sütun adı üzerine tıklayın.
6.32 Odaklı arama özelliğini nasıl kullanabilirim?¶
Odaklı arama özelliği tablo arama özelliğine bir alternatiftir. Dağılım çizimi içindeki verisini temsil eden bir tablo keşfetmenize izin verir. Bir tablo seçerek ve Ara sekmesine tıklayarak bu özelliğin yerini öğrenebilirsiniz. Tablo Arama sayfasındaki alt sekmelerden birisi Odaklı Arama’dır.
Bir örnek için 6.6 Örnekle sorgulamada ilişki tablosunu nasıl kullanabilirim? içindeki REL_persons tablosunu dikkate alın. Odaklı aramayı kullanmak için iki sütunun seçilmesi gerekir, örneğin, id ve town_code. id değerleri bir eksende temsil edilir ve town_code değerleri diğer eksende. Her bir satır, id’si ve town_code’u tabanlı dağılım çizimi içinde işaret edilerek temsil edilecektir. Görüntülemek için iki alan dışında iki ilave arama kriterini dahil edebilirsiniz.
Her bir nokta için etiket olarak hangi alanın görüntülenmesi gerektiğini seçebilirsiniz. Eğer görüntülenme sütunu tablo için ayarlanmışsa (bakınız 6.7 “Görüntüleme sütunu” özelliğini nasıl kullanabilirim?), aksi halde siz ayarlamadıkça etiket olarak alınır. Ayrıca ‘Çizim için en fazla satır’ alanında belirlenerek çizimde görüntülenmesini istediğiniz en fazla satır sayısını seçebilirsiniz. Bir kere kriteriniz üzerinde karar verdiniz mi, çizimi görüntülemek için ‘Git’e tıklayın.
Çizim oluşturulduktan sonra, çizimi yakınlaştırmak ve uzaklaştırmak için fare tekerini kullanabilirsiniz. Buna ek olarak, gezdirme özelliği çizim üzerinde gezinme için etkinleştirilir. Ayrıntının belli bir seviyesine yakınlaştırabilirsiniz ve ilgilendiğiniz alanın yerini bulmak için gezdirmeyi kullanabilirsiniz. Noktaya tıklamak ileti kutusunu açar, görüntülenen veri satırı alanı verileri noktayla temsil edilir. Gerekirse değerleri düzenleyebilir ve güncelleme sorgusu yayınlamak için göndere tıklayabilirsiniz. Nasıl kullanılacağına ilişkin temel talimatlar, hemen çizimin üzerinde bulunan ‘Nasıl kullanılır?’ bağlantısına tıklanarak görüntülenebilir.
6.33 Bir tabloya gözatarken, sütun adını nasıl kopyalayabilirim?¶
Bağlantılı sütun adına tıklayarak sıralamanın yanısıra başlık hücrelerini sürükleyerek yeniden sıralamayı destekleyen sütunları da kopyalamak için gözat tablosu başlığı hücresi içerisindeki sütun adını seçmek zordur. Sütun adını kopyalamak için, araç ipucu böyle yapmanızı söylediğinde sütun adının yanındaki boş alana çift tıklayın. Bu size sütun adıyla bir girdi kutusu gösterecektir. Bu girdi kutusu içerisinden panonuza kopyalamak için sütun adına sağ tıklayabilirsiniz.
6.34 Sık Kullanılan Tablolar özelliğini nasıl kullanabilirim?¶
Sık Kullanılan Tablolar özelliği Son Tablolar özelliğine çok benzer. Gezinti panelindeki herhangi bir veritabanının sıkça kullanılan tabloları için bir kısayol eklemenize izin verir. Listeden basitçe seçerek listedeki herhangi bir tabloya kolayca gidebilirsiniz. Eğer phpMyAdmin Yapılandırma Depolamanızı yapılandırmadıysanız, bu tablolar tarayıcınızın yerel depolamasında saklanır. Aksi takdirde bu girişler phpMyAdmin Yapılandırma Depolaması içinde saklanır.
ÖNEMLİ: phpMyAdmin Yapılandırma Depolaması yokluğunda, Sık Kullanılan tablolarınız kendi içlerinde farklı seçimlerinize bağlı olarak farklı tarayıcılarda farklı olabilir.
Bir tabloyu Sık Kullanılan listesine eklemek için bir Veritabanının tablolarının listesindeki bir tablo adının önünde bulunan Gri yıldıza basitçe tıklayın ve yıldız ‘Sarı’ rengine dönene kadar bekleyin. Listeden bir tabloyu kaldırmak için Sarı yıldıza tıklayın ve tekrar Gri rengine dönene kadar bekleyin.
config.inc.php
dosyanızdaki $cfg['NumFavoriteTables']
dizgisini kullanarak, gezinti panelinde gösterilen sık kullanılan tabloların en fazla sayısını tanımlayabilirsiniz. Varsayılan değeri 10 dur.
6.35 Aralığı arama özelliğini nasıl kullanabilirim?¶
Aralığı arama özelliğinin yardımıyla, biri Arama sekmesinden bir tablo arama işlemi gerçekleştirirken belirli sütun(lar) için değerlerin aralığını belirleyebilir.
Bu özelliği kullanmak için sütun adının önündeki işletici seçme listesinden basitçe BETWEEN veya NOT BETWEEN işleticilerine tıklayın. Yukarıdaki seçeneklerden biri seçildiğinde, bu sütun için En Az ve En Fazla değeri soran bir ileti kutusu görünecek. Kesin sonuçlardan sadece BETWEEN durumunda olan değerlerin belirlenen aralığı dahil edilecektir ve NOT BETWEEN durmunda olanlar hariç tutulacaktır.
Not: Aralığı arama özelliği sadece ‘Sayısal’ ve ‘Tarih’ veri türü sütunlarında çalışacaktır.
6.36 Merkezi sütunlar nedir ve bu özelliği nasıl kullanabilirim?¶
Adından da anlaşılacağı gibi, Merkezi sütunlar özelliği veritabanı başına aynı veri öğesi için benzer ismi önlemek için bir merkezi sütunlar listesini ve aynı veri öğesi için veri türünün tutarlılığını sağlamayı etkinleştirir. Merkezi sütunlar listesini, bu veritabanında benzer sütun adını ve sütun tanımını yazmaktan kurtaracak olan herhangi bir tablo yapısına bir öğe eklemek için kullanabilirsiniz.
Merkezi listeye bir sütun eklemek için tablo yapısı sayfasına gidin, dahil etmek istediğiniz sütunları kontrol edin ve ondan sonra basitçe “Merkezi sütunlara ekle” seçeneğine tıklayın. Eğer bir veritabanından birden fazla tablodan tüm benzersiz sütunları eklemek istiyorsanız o zaman veritabanı yapısı sayfasına gidin, dahil etmek istediğiniz tabloları kontrol edin ve ondan sonra “Sütunları merkezi listeye ekle”yi seçin.
Merkezi listeden bir sütunu kaldırmak için tablo yapısı sayfasına gidin, kaldırmak istediğiniz sütunları kontrol edin ve ondan sonra basitçe “Merkezi sütunlardan kaldır” seçeneğine tıklayın. Eğer bir veritabanından birden fazla tablodan tüm sütunları kaldırmak istiyorsanız o zaman veritabanı yapısı sayfasına gidin, dahil etmek istediğiniz tabloları kontrol edin ve ondan sonra “Sütunları merkezi listeden kaldır”ı seçin.
Merkezi listeyi yönetmek ve görüntülemek için merkezi sütunları yönetmek istediğiniz veritabanını seçin ondan sonra üst menüden “Merkezi sütunlar”a tıklayın. Merkezi listeye yeni sütunları eklemek, düzenlemek ya da silmek için seçeneklerin olduğu bir sayfaya yönlendirileceksiniz.
6.37 Gelişmiş Tablo Yapısı özelliğini nasıl kullanabilirim?¶
Gelişmiş tablo yapısı özelliği tablo yapısının Üçüncü Normal Biçim’e kadar getirilmesine yardımcı olur. Normalleştirme için çeşitli adımlar sırasında öğeler hakkında sorular soran bir sihirbaz kullanıcıya sunulur ve yeni bir yapının Birinci/İkinci/Üçüncü Normal biçim içinde getirilmesi buna göre önerilir. Sihirbazın başlangıcında, kullanıcıların normalleştirmek istedikleri tablo yapısını normal biçime kadar seçmeleri gerekir.
İşte Birinci, İkinci ve Üçüncü Normal Biçimin tüm üçünü denemek için kullanabileceğiniz bir örnek tablo.
CREATE TABLE `VetOffice` (
`petName` varchar(64) NOT NULL,
`petBreed` varchar(64) NOT NULL,
`petType` varchar(64) NOT NULL,
`petDOB` date NOT NULL,
`ownerLastName` varchar(64) NOT NULL,
`ownerFirstName` varchar(64) NOT NULL,
`ownerPhone1` int(12) NOT NULL,
`ownerPhone2` int(12) NOT NULL,
`ownerEmail` varchar(64) NOT NULL,
);
Yukarıdaki tablo primary key olmadığı gibi Birinci Normal Biçimde değil. Birincil anahtarın (petName,`ownerLastName`,`ownerFirstName`) olması gerekir. Eğer primary key önerildiği gibi seçilirse, sonuçta oluşan tablonun İkinci içinde olmayacak olmasının yanı sıra aşağıdaki bağımlıların olması durumunda Üçüncü Normal biçim de olmayacaktır.
(OwnerLastName, OwnerFirstName) -> OwnerEmail
(OwnerLastName, OwnerFirstName) -> OwnerPhone
PetBreed -> PetType
Yani OwnerEmail alanının, OwnerLastName ve OwnerFirstName alanlarına bağlı olduğunu söyler. OwnerPhone alanı OwnerLastName ve OwnerFirstName alanına bağlıdır. PetType alanı da PetBreed alanına bağlıdır.
6.38 Nasıl otomatik artan değerleri yeniden atayabilirim?¶
Bazı kullanıcılar, AUTO_INCREMENT değerlerini ardışık olmasını tercih ederler; bu her zaman satır silmeden sonra böyle değildir.
Bunu gerçekleştirmek için adımlar şunlardır. Bunlar elle uygulanan adımlardır çünkü onlar bir noktada elle doğrulamayı gerektirir.
- Yeniden düzenlemek için tabloya özel erişime sahip olduğunuzdan emin olun
- primary key sütununuzdaki (yani id), AUTO_INCREMENT ayarını kaldırın
- Yapı > indeksler içinde birincil anahtarınızı silin
- Birincil anahtar, AUTO_INCREMENT olarak yeni bir future_id sütunu oluşturun
- Tablonuza gözatın ve beklentinize denk gelen yeni artışları doğrulayın
- Eski id sütununuzu kaldırın
- future_id sütununu id olarak yeniden adlandırın
- Yapı > Sütunları taşı aracılığıyla yeni id sütununu taşıyın
6.39 Bir veritabanını, tabloyu, sütunu veya yordamı yeniden adlandırırken, kopyalarken veya taşırken “Yetkileri Ayarla” seçeneği nedir?¶
Bir veritabanını/tabloyu/sütunu/yordamı yeniden adlandırırken/kopyalarken/taşırken, MySQL kendi başına bu nesnelerle ilgili orijinal yetkileri ayarlamaz. Bu seçeneği seçerek, phpMyAdmin izin tablosunu ayarlayacak böylece kullanıcılar yeni öğeler üzerinde aynı yetkilere sahip olacak.
Örneğin: Bir kullanıcı ‘bob’@’localhost’, ‘id’ adlı bir sütun üzerinde bir ‘SELECT’ yetkisine sahip. Şimdi, eğer bu sütun ‘id_new’ olarak yeniden adlandırılırsa, MySQL, kendi başına, yeni sütun adı için sütun yetkilerini ayarlamaz. phpMyAdmin sizin için bu ayarlamayı otomatik olarak yapabilir.
Notlar:
- Bir veritabanı için yetkiler ayarlanırken, tüm veritabanı ile ilgili öğelerin (tablolar, sütunlar ve yordamlar) yetkileri ayrıca veritabanının yeni adına ayarlanır.
- Benzer şekilde, bir tablo için yetkiler ayarlanırken, yeni tablo içerisindeki tüm sütunların yetkileri ayrıca ayarlanır.
- Yetkiler ayarlanırken, işlemi uygulayan kullanıcı aşağıdaki yetkilere sahip olmak zorundadır:
- Şurada belirtilen tablolardaki SELECT, INSERT, UPDATE, DELETE yetkileri: mysql.`db`, mysql.`columns_priv`, mysql.`tables_priv`, mysql.`procs_priv`
- FLUSH yetkisi (GENEL)
Böylece, bu nesneleri yeniden adlandırırken/kopyalarken/taşırken olduğu gibi veritabanını/tabloyu/sütunu/yordamı çoğaltmak istiyorsanız, bu seçeneği işaretlediğinizden emin olun.
6.40 “SQL” sayfasında “Parametreleri bağla” onay kutusunu görüyorum. Parametreleştirilmiş SQL sorgularını nasıl yazabilirim?¶
4.5 sürümünden itibaren, phpMyAdmin, “SQL” sayfasındaki parametreleştirilmiş sorguları çalıştırması için kullanıcılara izin verir. Parametrelerin önüne iki nokta üst üste (:) koyulmalıdır ve “Parametreleri bağla” onay kutusu işaretlendiğinde bu parametreler tanımlanacaktır ve bu parametrelerin girdi alanları sunulacaktır. Bu alana girilen değerler çalıştırılmadan önce sorguda yerine koyulacaktır.
6.41 Eski MySQL sürümlerinden (5.7.6 öncesi) daha yeni MySQL sürümlerine (5.7.7+) aktarılan dökümler içe aktarılırken içe aktarma hataları alıyorum, ancak aynı eski sürümlere geri aktarıldığında sorunsuz çalışırlar mı ?¶
Eğer 5.7.7 öncesi MySQL sunucularından yeni MySQL sunucusu 5.7.7+ sürümlerine aktarılan dökümler içe aktarılırken #1031 - ‘table_name’ için tablo depolama motoru bu seçeneğe sahip değil gibi hatalar alıyorsanız, bu InnoDB tabloları ile ROW_FORMAT=FIXED desteklenmediği için olabilir. Dahası, innodb_strict_mode değeri bir uyarı ya da bir hata olarak bildirilmekteyse tanımlanmaktadır.
MySQL 5.7.9 sürümünden bu yana, innodb_strict_mode için varsayılan değer ON’dur ve CREATE TABLE veya ALTER TABLE gibi bir ifade ile karşılaşıldığında böylece bir hata oluşturmaktadır.
İçe aktarılırken böyle hataları önlemenin iki yolu vardır:
- İçe aktarma işlemine başlamadan önce innodb_strict_mode değerini OFF olarak değiştirmek ve içe aktarma işlemi başarılı olarak tamamlandıktan sonra ON olarak çevirmek.
- Bu iki şekilde elde edilebilir:
- ‘Değişkenler’ sayfasına gidin ve innodb_strict_mode değerini düzenleyin
- Sorguyu çalıştırın : SET GLOBAL `innodb_strict_mode = ‘[değer]’`
İçe aktarma işlemi bittikten sonra, innodb_strict_mode değerinin orijinal değerine sıfırlanması önerilir.
phpMyAdmin projesi¶
7.1 Bir hata buldum. Geliştiricileri nasıl haberdar edebilirim?¶
Sorunlar izleyicimiz <https://github.com/phpmyadmin/phpmyadmin/issues> adresinde bulunur. Güvenlik sorunları için geliştiricilere doğrudan e-posta göndermek için lütfen <https://www.phpmyadmin.net/security> adresindeki talimatlara bakın.
7.2 Mesajları yeni bir dile çevirmek veya varolan bir dile yükseltmek istiyorum, nereden başlıyayım?¶
Çevirilere açığız ve tüm ihtiyacınız olan dil yeteneklerine sahip olmanız. En kolay yolu çevrimiçi çeviri hizmetimizi kullanmaktır. Web sitemizdeki çeviri bölümünde çevirmek için tüm olasılıkları kontrol edebilirsiniz.
7.3 phpMyAdmin’in geliştirilmesine yardım etmek isterim. Nasıl yapmalıyım?¶
phpMyAdmin’in geliştirilmesi için her katkıya açığız. Web sitemizdeki katkı bölümünde katkıda bulunmak için tüm olasılıkları kontrol edebilirsiniz.
Ayrıca bkz.
Güvenlik¶
8.1 phpMyAdmin için verilen güvenlik uyarıları hakkında bilgiyi nereden alabilirim?¶
Lütfen <https://www.phpmyadmin.net/security/> adresine bakın.
8.2 phpMyAdmin’i deneme yanılma yöntemi saldırılarına karşı nasıl koruyabilirim?¶
Eğer Apache web sunucusu kullanıyorsanız, phpMyAdmin kimlik doğrulaması hakkındaki bilgiyi Apache ortamına aktarır ve Apache günlüklerinde kullanılabilir. Şimdilik iki değişken mevcuttur:
userID
- Şu anki aktif kullanıcının kullanıcı adı (oturum açmamış olmalılar).
userStatus
- Şu anki aktif kullanıcının durumu, bir tanesi
ok
(kullanıcı oturum açtı),mysql-denied
(MySQL, kullanıcı oturum açmasını reddetti),allow-denied
(kullanıcı, izin ver/reddet kuralları tarafından reddedildi),root-denied
(root yapılandırma içinde reddedildi),empty-denied
(boş parola reddedildi).
Apache için LogFormat
yönergesi aşağıdaki gibi görünebilir:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
Ondan sonra olası zorla girme girişimleri için herhangi bir günlük çözümleme aracı kullanabilirsiniz.
8.3 Neden belirli dosyalar doğrudan yüklenirken yol açıklamaları var?¶
Bu bir sunucu yapılandırma sorunudur. Bir üretim sitesinde display_errors
parametresini asla etkinleştirmeyin.
8.4 phpMyAdmin’den dışa aktarılan CSV dosyaları bir formül ekleme saldırısına izin verebilir.¶
Microsoft Excel gibi bir hesap tablosu programına aktarıldığında, bir CSV dosyası oluşturmak mümkündür, gelişigüzel komutların yürütülmesine olanak dahilinde izin verebilir.
phpMyAdmin tarafından oluşturulan CSV dosyaları olanak dahilinde bir formül gibi hesap tablosu programı tarafından yorumlanacak metin içerebilir, ancak biz bu alanların atlatılmasının uygun davranış olduğuna inanmıyoruz. Düzgün atlatmanın ve istenen bir metin çıktısı ile atlatılması gereken bir formül arasındaki farkı gözetmenin anlamı yoktur, ve CSV, işlev tanımları yine de yorumlanmaması gereken bir metin biçimidir. Biz bunu uzun uzun tartıştık ve bunun yerine girişte böyle bir veriyi düzgün bir şekilde ayrıştırmanın ve temizlemenin hesap tablosu programının sorumluluğu olduğunu hissettik.
Ayrıca Google benzer bir görünüme sahip.