<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mysql, Mysql Yardım, Mysql Danışmanlık,Database danışmanlık,Mssql Danışmanlık,Oracle Danışmanlık &#187; Mysql Dersleri</title>
	<atom:link href="http://www.mysqlsupport.net/category/mysql-dersleri/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlsupport.net</link>
	<description>Database Danışmanlık Hizmeti</description>
	<lastBuildDate>Wed, 16 Mar 2011 07:40:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How to Attach Image(s) to Mysql Record</title>
		<link>http://www.mysqlsupport.net/how-to-attach-images-to-mysql-record.html</link>
		<comments>http://www.mysqlsupport.net/how-to-attach-images-to-mysql-record.html#comments</comments>
		<pubDate>Wed, 16 Mar 2011 07:39:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[mysql image]]></category>
		<category><![CDATA[mysql jpg]]></category>
		<category><![CDATA[mysql resim]]></category>
		<category><![CDATA[mysqlde image saklama]]></category>
		<category><![CDATA[mysqlde resim tutma]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=764</guid>
		<description><![CDATA[MYSQL DE IMAGE TUTMAK Mysql de image tutmak icin ilk once tablomuzu yaratalim, CREATE TABLE picture ( ID INTEGER AUTO_INCREMENT, IMAGE BLOB, PRIMARY KEY (ID) ) ENGINE=INNODB; Burada image isminde veri tipi BLOB olan bir column yaratiyoruz. Daha sonra mysql&#8217;e connect oldugumuz userimiza GLOBAL FILE okuma yetkisi veriyoruz. GRANT FILE ON *.* TO username@'host'; Son [...]]]></description>
			<content:encoded><![CDATA[<p><strong>MYSQL DE IMAGE TUTMAK</strong></p>
<p>Mysql de image tutmak icin ilk once tablomuzu yaratalim,</p>
<p><strong><code>CREATE TABLE picture (<br />
ID INTEGER AUTO_INCREMENT,<br />
IMAGE BLOB,<br />
PRIMARY KEY (ID)<br />
) ENGINE=INNODB;</code></strong></p>
<p>Burada image isminde veri tipi <strong>BLOB </strong>olan bir column yaratiyoruz.</p>
<p>Daha sonra mysql&#8217;e connect oldugumuz userimiza<strong> GLOBAL FILE </strong>okuma yetkisi veriyoruz.</p>
<p><strong><code>GRANT FILE ON *.* TO username@'host'; </code></strong></p>
<p>Son olarakda insert sql imizi yaziyoruz.</p>
<p><strong><code>INSERT INTO picture (IMAGE) VALUES ( LOAD_FILE('/tmp/coffee.jpg'));</code></strong></p>
<p>Boylece mysql de image lerimizi tutmus oluyoruz.</p>
<p>Tayfur BÖLER<br />
Database Administrator<br />
www.mysqlsupport.net<br />
<script src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin" type="text/javascript"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:1,
Toplam Okunma Sayısı:1796</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/how-to-attach-images-to-mysql-record.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mysql Binary Log Silme</title>
		<link>http://www.mysqlsupport.net/mysql-binary-log-silme.html</link>
		<comments>http://www.mysqlsupport.net/mysql-binary-log-silme.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 06:57:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[bin]]></category>
		<category><![CDATA[bin-log silme]]></category>
		<category><![CDATA[binary log]]></category>
		<category><![CDATA[binarylog silme]]></category>
		<category><![CDATA[how can i purge mysql binary log]]></category>
		<category><![CDATA[log silme]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql bin]]></category>
		<category><![CDATA[mysql bin-log temizleme]]></category>
		<category><![CDATA[mysql binary log]]></category>
		<category><![CDATA[mysql binarylog purge]]></category>
		<category><![CDATA[mysql binlog]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=749</guid>
		<description><![CDATA[Mysql Binary Log Silme, Mysql&#8217;de tuttuğunuz binary-log&#8217;lar belli bir süre sonra size yük olmaya başlayacaktır. Şöyleki hem boyut olarak harddiskinizde önemli bir yer kaplayacaktır hatta harddiskinizi tamamen dolduracaktır hem de bu kadar çok adet ve boyut olarak fazla olan dosyaların yönetimi sizi zorlayacaktır. Binary logların silinmesi için, yani &#8216; binary-log purge işlemi için &#8216;, aşağıdaki [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mysql Binary Log Silme,</strong></p>
<p>Mysql&#8217;de tuttuğunuz binary-log&#8217;lar belli bir süre sonra size yük olmaya başlayacaktır. Şöyleki hem boyut olarak harddiskinizde önemli bir yer kaplayacaktır hatta harddiskinizi tamamen dolduracaktır hem de bu kadar çok adet ve boyut olarak fazla olan dosyaların yönetimi sizi zorlayacaktır. Binary logların silinmesi için, yani &#8216; <strong>binary-log purge işlemi için </strong>&#8216;, aşağıdaki scripti çalıştırmanız yeterli olacaktır.</p>
<p><strong><em>PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ), INTERVAL   3   DAY);</em></strong></p>
<p><strong><em><br />
</em></strong></p>
<p>Bu scripti çalıştırdığınızda son 3 gün hariç önceki günlerde yaratılmış olan binary loglarınızı silinecektir. Buradaki 3&#8242;ü değiştirip istediğiniz günden önceki binary-log&#8217;ları temizleyebilirsiniz.</p>
<p><strong>NOT: </strong>Binary-loglarınızı kesinlikle işletim sisteminizden elle silmeyi tavsiye etmiyorum, böyle bir işlem yapılması durumunda database&#8217;nizde onarılması güç problemlere sebeb olabilirsiniz.</p>
<p>Tayfur BÖLER</p>
<p>Database Administrator</p>
<p>www.mysqlsupport.net<br />
<script src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin" type="text/javascript"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:1,
Toplam Okunma Sayısı:4712</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-binary-log-silme.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>MySQL VERİTABANI GÜVENLİğİ</title>
		<link>http://www.mysqlsupport.net/mysql-veritabani-guvenligi.html</link>
		<comments>http://www.mysqlsupport.net/mysql-veritabani-guvenligi.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 18:13:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[Ağ trafiğinin şifrelenmesi]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[db guvenlik]]></category>
		<category><![CDATA[DNS Güvenliği]]></category>
		<category><![CDATA[GÜVENLİĞİ]]></category>
		<category><![CDATA[kullanıcı/grup ikilisinin hakları ile çalışacağının  belirlenmesi]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[MySQL kullanıcıları erişim güvenliği]]></category>
		<category><![CDATA[MySQL root kullanıcısı güvenliği]]></category>
		<category><![CDATA[MySQL sunucu servisi çalışma ortamı güvenliği]]></category>
		<category><![CDATA[MySQL sunucu servisinin çalışacağı IP adresi bilgisinin belirlenmesi]]></category>
		<category><![CDATA[MySQL sunucu servisinin root harici]]></category>
		<category><![CDATA[MySQL sunucusu dosya dizin erişim güvenliği]]></category>
		<category><![CDATA[MySQL VERİTABANI GÜVENLİĞİ]]></category>
		<category><![CDATA[Örnek veritabanı ve tabloların güvenliği]]></category>
		<category><![CDATA[Parola güvenliği]]></category>
		<category><![CDATA[VERİTABANI]]></category>
		<category><![CDATA[veritabani guvenligi]]></category>
		<category><![CDATA[Yama Kontrolü]]></category>
		<category><![CDATA[Yerel erişim güvenliğinin artırılması]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=699</guid>
		<description><![CDATA[MySQL VERİTABANI GÜVENLİğİ KILAVUZU TÜBİTAK “ UEKAE tarafından hazırlanan Mysql Veritabanı güvenliği hakkında faydalı bir döküman. 1 . G İ R İş Bu kılavuzda yaygın olarak kullanılan aÇık kaynak kodlu veritabanı MySQL”in güvenlik yapılandırması anlatılmaktadır. 1.1 AmaÇ ve Kapsam Bu dokümanın amacı, MySQL veritabanlarının güvenli kabul edilmesi amacıyla uygulanması gereken politika, prensip ve esasların belirlenmesidir. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>MySQL VERİTABANI GÜVENLİğİ KILAVUZU</strong></p>
<p>TÜBİTAK “ UEKAE tarafından hazırlanan Mysql Veritabanı güvenliği hakkında<br />
faydalı bir döküman.</p>
<p><strong>  1 . G İ R İş</strong></p>
<p>  Bu kılavuzda yaygın olarak kullanılan aÇık kaynak kodlu veritabanı MySQL”in güvenlik<br />
  yapılandırması anlatılmaktadır.</p>
<p> <strong> 1.1 AmaÇ ve Kapsam</strong></p>
<p>  Bu dokümanın amacı, MySQL veritabanlarının güvenli kabul edilmesi amacıyla uygulanması<br />
  gereken politika, prensip ve esasların belirlenmesidir. Dokümanda, belirlenen adımların<br />
  uygulanmasına yönelik yöntemler de yer almaktadır.</p>
<p><strong>  1.2 Hedeflenen Kitle</strong></p>
<p>  Bu doküman MySQL veritabanlarının yönetilmesinden ve güvenli olarak yapılandırılmasından<br />
  sorumlu kişiler tarafından kullanılabilir.                                                                                           5<br />
<strong></p>
<p>  2 . MySQL VERİTABANI</strong></p>
<p>  MySQL sunucu servisi hem Windows hem de Linux/Unix sistemler üzerinde koşan, genellikle<br />
  php ile uygulama geliştiren geliştiriciler tarafından tercih edilen, kullanım oranı yüksek bir<br />
  veritabanı uygulamasıdır. Burada Unix/Linux sistemler üzerinde Çalışan MySQL veritabanı<br />
  uygulamasının güvenli hale gelmesi iÇin gerekli adımlardan bahsedilecektir. Burada<br />
  anlatılanlar ne kadar Unix/Linux sistemlere has bilgiler olsada temel olarak diğer işletim<br />
  sistemleri iÇinde uygulanabilmektedir. Sıkılaştırma adımlarından genel olarak aşağıda<br />
  bahsedilmiştir:<br />
      â?¢    MySQL sunucu servisi Çalışma ortamı güvenliği (chroot),<br />
      â?¢    MySQL sunucu servisinin root harici “kullanıcı/grup” ikilisinin hakları ile Çalışacağının<br />
           belirlenmesi,<br />
      â?¢    MySQL sunucusu dosya dizin erişim güvenliği,<br />
      â?¢    MySQL sunucu servisinin Çalışacağı IP adresi bilgisinin belirlenmesi,<br />
      â?¢    Yerel erişim güvenliğinin artırılması,<br />
      â?¢    Ağ trafiğinin şifrelenmesi,<br />
      â?¢    MySQL kullanıcıları erişim güvenliği,<br />
      â?¢    Parola güvenliği,<br />
      â?¢    MySQL root kullanıcısı güvenliği,<br />
      â?¢    Ürnek veritabanı ve tabloların güvenliği,<br />
      â?¢    Yama Kontrolü,<br />
      â?¢    DNS Güvenliği</p>
<p><strong>  2.1 MySQL Veritabanı Genel Güvenlik AÇıklık Görünümü</strong></p>
<p>  MySQL yapılandırma dosyası genel formatının belirtilmesinin ardından, MySQL sunucu<br />
  servisinin nasıl daha güvenli hizmet verebileceği noktasında yapılacaklar anlatılacaktır.<br />
  GerÇekleştirilecek adımların ana başlıkları yukarıda listelenmiştir. Bugüne kadar 3.3<br />
  sürümünden 5.0 sürümüne kadar MySQL veritabanında bulunan ve yayınlana<br />
  aÇıklık listesine  adresinden</p>
<p>http://forge.MySQL.com/wiki/Security_Vulnerabilities_In_MySQL_Server</p>
<p>  ulaşılabilir. </p>
<p><strong> 2.2 MySQL Sunucu Servisi Yapılandırma Dosyası Genel Formatı</strong></p>
<p> MySQL sunucu servisi genel yapılandırma dosyası olarak “/etc/my.cnf” kullanılmaktadır. Eğer<br />
 MySQL servisi chroot ortamı altında Çalıştırılıyor ise, yapılandırma dosyası olarak chroot<br />
 ortamı iÇin belirlenen dizinin altında bulunan “/etc/my.cnf” dosyası kullanılacaktır. Bu<br />
 dosyanın genel yapısı ve basitÇe yapılandırma seÇeneklerinin alacağı değerler aşağıda<br />
 belirtilmiştir.<br />
 â?¢ yapılandırma_seÇeneği=değer<br />
 Yukarıda belirtilen gösterim komut satırından aynı değerin mysqld ikilisi iÇin belirtimi aynıdır.<br />
 Ürneğin “my.cnf” yapılandırma dosyası iÇerisinde belirtimi gerÇekleştirilen “port = 3306” ile<br />
 “mysqld &#8211;port= 3306” Çalıştırılması aynı anlamdadır. “#” ile başlayan satırlar aÇıklama satırı<br />
 olarak ele alınmaktadır.</p>
<p> <strong> 3. MySQL VERİTABANI GÜVENLİK YAPILANDIRMALARI<br />
</strong><br />
  <strong>3.1 MySQL Veritabanı Üalışma Ortamı Güvenliğinin Sağlanması</strong></p>
<p>  MySQL sunucu servisinin chroot ortamı altında Çalışması sağlanarak, MySQL sunucu<br />
  servisinin işletim sistemi kaynaklarının tümüne erişimi kısıtlanmalıdır. Bu şekilde MySQL<br />
  sunucu servisi sadece ihtiyaÇ duyacağı kaynaklara erişim sağlanmış olacaktır. </p>
<p>  <strong>3.2 MySQL Veritabanını Süper Kullanıcı Harici Bir Kullanıcı Hakları ile Üalıştırmak</strong></p>
<p>  â?¢ [group]<br />
  group ile belirtilen değer yapılandırması gerÇekleştirilmek istenen programın adı ya da group.<br />
  Yapılandırma seÇenekleri [group] ile başlayıp bir sonraki [group] adına kadar geÇerli<br />
  olmaktadır. Ürneğin [mysqld] ile mysqld sunucu yazılımı iÇin etkinleştirilmek istenen değerler<br />
  belirtilecektir.<br />
  â?¢ “user = kullanıcı_adı” değeri ile MySQL sunucu servisinin hangi kullanıcı hakları ile<br />
  Çalıştırılacağı belirlenmektedir. Burada root kullanıcı haklarına sahip olmayan MySQL<br />
  grubuna üye MySQL kullanıcısı belirtilmiştir.<br />
  # vi my.cnf<br />
  [mysqld]<br />
  â?¦<br />
  user = mysql</p>
<p><strong> 3.3 MySQL Veritabanı Dosya ve Dizin Erişim Güvenliği</strong></p>
<p> MySQL sunucu servisi tarafından kullanılan dizin ve dosya sahipliği hakları root kullanıcısına,<br />
 grup sahipliği hakları ise MySQL sunucu servisini Çalıştıran kullanıcının dahil olduğu gruba ait<br />
 olmalıdır. MySQL sunucu servisinin mysql/mysql kullanıcı, grup ikilisi hakları ile Çalıştırıldığı<br />
 düşünüldüğünde örnek bir dosya/dizin sahipliği hakları aşağıdaki gibi olmalıdır.<br />
 # chown root:mysql [dosya/dizin]<br />
 Yukarıda belirtilen dosya dizin sahipliklerine göre, dosya erişim izinleri iÇin sayısal<br />
 notasyonda 440 (r&#8211;r&#8212;&#8211;), dizin erişim izinleri iÇin ise 550 (r-xr-x&#8212;) şeklinde olmalıdır. Bu<br />
 durum iÇin istisna teşkil edecek durumlar olabilmektedir. Ürneğin log, var ya da yeni<br />
 oluşturulan bir veritabanı iÇin kullanılacak olan dizinler iÇinde MySQL kullanıcısının dahil<br />
 olduğu grubun yazma hakkının olması gerekmektedir. Bunun yanında MySQL sunucu<br />
 servisinin tarafından gerÇekleştirilen veri değişimleri hakkında bilgileri iÇeren “.bin” uzantılı<br />
 dosyalar iÇinde yazma hakkının bulunması gerekmektedir. Bu duruma örnek teşkil edecek bir<br />
 kullanım aşağıda gösterilmiştir.<br />
 # chown root:mysql        /var/mysql/{log,var}<br />
 # chmod 550 /var/mysql/{log,var}<br />
 # chmod 460 /var/mysql/var/mysql-bin.*<br />
 “my.cnf” dosyasının sahipliği root kullanıcısı, grup sahipliği olarak ise MySQL sunucu<br />
 servisini Çalıştıran kullanıcının ( Ürneğin “mysql/mysql” kullanıcı/grup ikilisi ) dahil olduğu<br />
 grup olarak yapılandırmalı ve erişim izinleri iÇin ise sayısal notasyon olarak 440 olarak<br />
 belirlenmelidir.<br />
 # chown root:mysql my.cnf<br />
 # chmod 440 my.cnf</p>
<p><strong>  3.4 MySQL Veritabanı Servisinin Üalışacağı IP Adres Bilgisinin Belirlenmesi</strong></p>
<p>  “bind-address= ip adres bilgisi” değeri ile MySQL sunucu servisinin bağlantıları dinleyeceği<br />
  ip adres bilgisi tanımlanmaktadır. Ün tanımlı olarak MySQL sunucu yazılımı bütün ağ<br />
  arayüzlerinden gelen bağlantıları kabul edecek şekilde yapılandırılmaktadır. Eğer MySQL<br />
  sunucu servisi ve web uygulaması aynı sunucu makine üzerinde Çalışacak ise bu değer<br />
  “127.0.0.1” olarak belirtilmelidir. Aslında bu durumda               “skip-networking” değeri<br />
  kullanılabilir. “skip-networking” değeri ile MySQL sunucu yazılımı hiÇbir şekilde TCP/IP<br />
  bağlantılarını   dinlemez.   Bütün   etkileşim   (Linux/Unix)    unix   soketleri   aracılığı ile<br />
  gerÇekleştirilir. Ancak burada Apache ve MySQL sunucu servisleri iÇin ayrı ayrı chroot<br />
  dizinleri oluşturulmuş ise, bu seÇenek kullanılamamaktadır. Bu seÇeneğin yerine “bind-<br />
  address=127.0.0.1” değeri ile sadece belirtilen ip adreslerinden gelen bağlantıları kabul edecek<br />
  şekilde yapılandırılmalıdır. Eğer Apache ve MySQL sunucu servisleri aynı sunucu makine<br />
  üzerinde değil iseler, güvenlik duvarı ya da tcp_wrapper gibi uygulamalar aracılığı ile ip adres<br />
  kısıtlaması gerÇekleştirilmelidir. Bu şekilde sadece belirtilen ip adreslerinden bağlantı kabul<br />
  edilecektir. Bunun yanında iletişimin aÇık bir şekilde değil, şifreli olarak ağ üzerinden<br />
  gerÇekleştirilmesi sağlanmalıdır.<br />
  # vi my.cnf<br />
  [mysqld]<br />
  â?¦<br />
  bind-address=127.0.0.1<br />
  â?¦<br />
  #<br />
  netstat komutu ile MySQL sunucu servisinin hangi ağ ara yüzünden gelen bağlantıları kabul<br />
  edeceği görülebilmektedir.<br />
  # netstat -plunat | grep &#8220;mysqld&#8221;<br />
  tcp       0    0 127.0.0.1:3306           0.0.0.0:*           LISTEN         5010/mysqld<br />
  #</p>
<p> <strong>3.5 Yerel Erişim Güvenliğinin Artırılması</strong></p>
<p> “LOAD DATA LOCAL INFILE” komutları engellenerek, yerel dosyaların yetkisiz erişimlerden<br />
 korunması sağlanmalıdır. Bu şekilde özellikle php ile geliştirilen web uygulamalarında<br />
 bulunabilecek olan, sql enjeksiyonu saldırılarından kaynaklanan yetkisiz yerel dosyaların<br />
 okunmasını engellemektedir. Bunun iÇin MySQL sunucu servisi yapılandırma dosyasında<br />
 aşağıdaki değer bulunmalıdır.<br />
 # vi my.cnf<br />
 â?¦<br />
 local-infile        =0<br />
 â?¦<br />
 #<br />
<strong><br />
 3.6 Ağ Trafiğinin Gözlemlenmesi</strong></p>
<p> Aksi belirtilmedikÇe MySQL sunucu istemci arasındaki ağ trafiği aÇık metin olarak<br />
 gerÇekleştirilmektedir. Aslında bu sadece MySQL”e has bir özellik değil, sunucu istemci<br />
 mimarisi ile Çalışan bütün uygulamalar iÇin geÇerli bir durumdur. Kötü niyetli kişiler sunucu<br />
 istemci arasında gerÇekleştirilen aÇık metin trafiği dinlereyek hassas bilgilere erişim<br />
 sağlayabilirler. Aşağıda MySQL sunucusu ile istemcisi arasındaki ağ trafiğinin gözlemlenmesi<br />
 halinde nelerin yapılabileceğini göstermek aÇısından MySQL sunucu sistemi üzerinde tcpdump<br />
 ve strings komutları kullanılarak gerÇekleştirilen sorgu işlemleri gösterilmiştir.</p>
<p> #<strong> tcpdump -l -i eth0 -w &#8211; src or dst port 3306 | strings</strong><br />
<strong> tcpdump:</strong> listening on eth0, link-type EN10MB (Ethernet), capture size 96<br />
 bytes<br />
 5.0.45<br />
 wRuuj5g,<br />
 LLBPALES<br />
 show databases<br />
 SCHEMATA<br />
 Datab<br />
 show tables<br />
 TABLE_NAMES<br />
 select @@version_comment<br />
 @@version_com<br />
 show databases<br />
  SCHEMATA<br />
  Datab</p>
<p>  Görüldüğü gibi MySQL istemcisinden gerÇekleştirilen sorgular aÇık olarak görülmektedir.<br />
  Aynı işlem MySQL sunucu istemci arasındaki trafiğin şifreli olarak iletildiği durumda aşağıda<br />
  görüldüğü gibi olmaktadır.</p>
<p>  <strong># tcpdump -l -i eth0 -w &#8211; src or dst port 3306 | strings</strong><br />
  tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96<br />
  bytes<br />
  gLOY<br />
  %DgLOY<br />
  gLOY<br />
  lnp@<br />
  %HgLOY4<br />
  5.0.45<br />
  bA['P;xl<br />
  gLO<br />
  gLO_<br />
  4nq@<br />
  %KgLO_<br />
  gLOo<br />
  4nr@</p>
<p>  Yukarıda görüldüğü gibi MySQL sunucu ve istemcisi arasındaki ağ trafiği şifreli bir biÇimde<br />
  gerÇekleştirildiğinde, sorgular aÇık olarak görüntülenememektedir.</p>
<p>  MySQL sunucu istemci trafiğinin şifrelenmesi iÇin uygulanabilecek yöntemlerden bir taneside<br />
  openssl uygulamasının kullanılmasıdır. MySQL sunucu istemci trafiğinin şifrelenmesi iÇin<br />
  kullanılabilecek aÇık kaynak kodlu yöntemlerden bazıları olarak OpenSSH, OpenVPN ve<br />
  OpenSSL gösterilebilir. Burada OpenSSL kullanılarak nasıl sunucu istemci arasındaki trafiğin<br />
  şifreleneceği anlatılacaktır. Üncelikle mevcut MySQL sunucu servisinde SSL desteğinin aktif<br />
  olup olmadığına bakılmalıdır. şekil 3-2”de görüldüğü gibi “SHOW VARIABLES LIKE<br />
  'have_openssl” SQL sorgusu ile görüntülenebilir.</p>
<p><strong> “Value” değerinin “DISABLED” olması,</strong> veritabanı sunucusunun SSL desteğinin olduğunu<br />
 fakat doğru parametreler ile başlatılmadığını göstermektedir. SSL desteğinin kullanılabilmesi<br />
 iÇin    MySQL      sunucu    yazılımının   derlenmesi    esnasında      “--with-vio  --with-openssl”<br />
 paremetrelerinin kullanılması gerekmektedir.</p>
<p> MySQL sunucu servisine SSL desteğinin verilmesinin ardından sunucu ve istemci iÇin gerekli<br />
 sertifikalar oluşturulmalı ve son olarak sunucu ve istemci yapılandırma dosyalarında gerekli<br />
 işlemler gerÇekleştirilmelidir. Burada sertifika otoritesi iÇin gerekli sertifikalar öncelikle bizim<br />
 tarafımızdan üretilir. Daha sonra sunucu istemci iÇin gerekli sertifikalar üretilerek bu sertifika<br />
 otoritesi yardımı ile imzalanır. Bu işlemler iÇin öncelikle uygun bir dizin belirlenmeli ve<br />
 gerekli sertifikalar oluşturulmalıdır.</p>
<p><strong> # mkdir /usr/local/SQL-certs<br />
 # cd /usr/local/MySQL-certs</strong></p>
<p> Sertifika iÇin gerekli dizinin oluşturulmasının ardından öncelikle sertifika otoritesi iÇin gerekli<br />
 seritifikalar oluşturulmalı ardından sunucu ve istemci iÇin gerekli sertifikalar oluşturulmalıdır.<br />
 Sertifika otoritesi iÇin gerekli sertifikayı oluşturmak iÇin aşağıdaki adımlar sırası ile<br />
 uygulanmalıdır.<br />
<strong><br />
 # openssl genrsa -out ca-key.pem 2048</strong></p>
<p> Generating RSA private key, 2048 bit long modulus<br />
 ...........................................................................+<br />
 +++++ e is 65537 (0x10001)<br />
<strong><br />
 # openssl req -new -x509 -nodes -days 1000 -key ca-key.pem -out ca-cert.pem</strong></p>
<p> You are about to be asked to enter information that will be incorporated<br />
 into your certificate request. What you are about to enter is what is called<br />
 a Distinguished Name or a DN.</p>
<p>  There are quite a few fields but you can leave some blank For some fields<br />
  there will be a default value, If you enter '.', the field will be left<br />
  blank.<br />
  -----<br />
  Country Name (2 letter code) [GB]:TR<br />
  State or Province Name (full name) [Berkshire]:Kocaeli<br />
  Locality Name (eg, city) [Newbury]:Gebze<br />
  Organization Name (eg, company) [My Company Ltd]:Tubitak/Uekae<br />
  Organizational Unit Name (eg, section) []:Bilgi Guvenligi<br />
  Common Name (eg, your name or your server&#8217;s hostname) []:Uekae/Bilgi<br />
  Guvenligi<br />
  Email Address []:bilgi@bilgiguvenligi.gov.tr<br />
  Ardından sunucu iÇin gerekli sertifikalar oluşturulmalıdır. Bunun iÇin aşağıdaki adımların<br />
  sırası ile takip edilmesi gerekmektedir.<br />
<strong><br />
  # openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem -out</strong></p>
<p>  server-req.pem<br />
  Generating a 2048 bit RSA private key<br />
  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;+++<br />
  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.+++<br />
  writing new private key to &#8216;server-key.pem&#8217;<br />
  &#8212;&#8211;<br />
  You are about to be asked to enter information that will be incorporated<br />
  into your certificate request.<br />
  What you are about to enter is what is called a Distinguished Name or a DN.<br />
  There are quite a few fields but you can leave some blank For some fields<br />
  there will be a default value, If you enter &#8216;.&#8217;, the field will be left<br />
  blank.<br />
  &#8212;&#8211;<br />
  Country Name (2 letter code) [GB]:TR<br />
  State or Province Name (full name) [Berkshire]:Kocaeli<br />
  Locality Name (eg, city) [Newbury]:Gebze<br />
  Organization Name (eg, company) [My Company Ltd]:Tubitak/Uekae<br />
  Organizational Unit Name (eg, section) []:Bilgi Guvenligi</p>
<p> Common    Name     (eg,    your   name    or your   server&#8217;s  hostname)   []:Uekae/Bilgi<br />
 Guvenligi<br />
 Email Address []:bilgi@bilgiguvenligi.gov.tr<br />
 Please    enter     the    following     &#8216;extra&#8217;   attributes  to  be   sent    with  your<br />
 certificate request<br />
 A challenge password []:<br />
 An optional company name []:</p>
<p><strong> # openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-<br />
 key.pem -set_serial 01 -out server-cert.pem</strong></p>
<p> Signature ok<br />
 subject=/C=TR/ST=Kocaeli/L=Gebze/O=Tubitak/Uekae/OU=Bilgi<br />
 Gvenligi/CN=Uekae/Bilgi Guvenligi/emailAddress=bilgi@bilgiguvenligi.gov.tr<br />
 Getting CA Private Key<br />
 Son olaral MySQL istemcisi iÇin gerekli sertifikalar oluşturulmalıdır. Bunun iÇin aşağıdaki<br />
 adımların sırası ile takip edilmesi gerekmektedir.</p>
<p><strong> # openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem -out<br />
 client-req.pem</strong></p>
<p> Generating a 2048 bit RSA private key<br />
 &#8230;&#8230;&#8230;.+++&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
 &#8230;&#8230;+++ writing new private key to &#8216;client-key.pem&#8217;<br />
 &#8212;&#8211;<br />
 You are about to be asked to enter information that will be incorporated<br />
 into your certificate request.<br />
 What you are about to enter is what is called a Distinguished Name or a DN.<br />
 There are quite a few fields but you can leave some blank For some fields<br />
 there will be a default value, If you enter &#8216;.&#8217;, the field will be left<br />
 blank.<br />
 &#8212;&#8211;<br />
 Country Name (2 letter code) [GB]:TR<br />
 State or Province Name (full name) [Berkshire]:Kocaeli<br />
 Locality Name (eg, city) [Newbury]:Gebze<br />
 Organization Name (eg, company) [My Company Ltd]:Tubitak/Uekae<br />
 Organizational Unit Name (eg, section) []:Bilgi Guvenligi</p>
<p>  Common Name (eg, your name or your server&#8217;s hostname) []:Uekae/Bilgi<br />
  Guvenligi<br />
  Email Address []:bilgi@bilgiguvenligi.gov.tr<br />
  Please enter the following &#8216;extra&#8217; attributes<br />
  to be sent with your certificate request<br />
  A challenge password []:<br />
  An optional company name []:<br />
<strong><br />
  # openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-<br />
  key.pem -set_serial 01 -out client-cert.pem</strong></p>
<p>  Signature ok<br />
  subject=/C=TR/ST=Kocaeli/L=Gebze/O=Tubitak/Uekae/OU=Bilgi<br />
  Guvenligi/CN=Uekae/Bilgi Guvenligi/emailAddress=bilgi@bilgiguvenligi.gov.tr<br />
  Getting CA Private Key<br />
  Sertifikaların oluşturulmasının ardından kullanım iÇin MySQL sunucusu üzerinde, MySQL<br />
  yapılandırma dosyası iÇerisinde gerekli belirtimlerinin gerÇekleştirilmesi gerekmektedir. Bunun<br />
  iÇin yapılandırma dosyasında, sunucu taraflı yapılandırma iÇin [mysqld] bölümü iÇerisine<br />
  aşağıda belirtilen satırların eklenmesi gerekmektedir.<br />
  [mysqld]<br />
  ssl-ca=/usr/local/mysql-certs/cacert.pem<br />
  ssl-cert=/usr/local/mysql-certs/server-cert.pem<br />
  ssl-key=/usr/local/mysql-certs/server-key.pem<br />
  MySQL sunucu üzerinde sunucu taraflı gerekli yapılandırmanın gerÇekleştirilmesinin ardından,<br />
  MySQL sunucu servisi yeninden başlatılmalıdır ve ardından MySQL sunucu servisi üzerinde<br />
  SSL kullanımının aktif olduğu görülebilecektir.</p>
<p> Ardından MySQL istemcisi üzerinde sertifika kullanımı iÇin gerekli yapılandırma<br />
 değişikliklerinin gerÇekleştirilmesi gerekmektedir. Burada uzak MySQL istemcisi ile komut<br />
 satırından MySQL sunucusu ile iletişim sağlanıp, sorguların gerÇekleştirileceği göz önünde<br />
 bulundurularak aşağıdaki adımlar sırası ile takip edilmelidir. Kullanılmak istenen MySQL<br />
 istemcisine göre sertifika kullanımı ile ilgili yapılandırma farklılık göstermektedir. Üncelikle<br />
 sertifika yetkilisi ve istemcisi iÇin gerekli sertifikalar MySQL istemcisi üzerinde belirlenen<br />
 uygun bir dizine taşınmalıdır. Burada “/usr/local/mysql-certs” dizini olarak belirlenmiştir.<br />
 İsteğe göre farklı bir dizin seÇilebilir.</p>
<p> MySQL komut satırı istemcisinde SSL kullanımını aktif hale getirmek iÇin yapılandırma<br />
 dosyasında sertifikaların tam yolları belirtilmelidir.</p>
<p>  ssl-ca=/usr/local/mysql-certs/cacert.pem<br />
  ssl-cert=/usr/local/mysql-certs/client-cert.pem<br />
  ssl-key=/usr/local/mysql-certs/client-key.pem</p>
<p>  İlgili ayarların ardından MySQL istemcisinde “SHOW STATUS LIKE “Ssl_cipher” sorgusu<br />
  tekrar Çalıştırılarak şifreleme iÇin kullanılacak olan anahtar görüntülenebilir.</p>
<p>                şekil 3-5 şifreleme iÇin kullanılacak olan anahtarın durumunun görüntülenmesi<br />
  SSL kullanımının aktif hale getirilmesinin ardından MySQL kullanıcılarının SSL kullanımı ve<br />
  MySQL sunucu servisi ile iletişime geÇmelerini zorlama işlemi, GRANT ifadesinde<br />
  “REQUIRE SSL” kullanılarak gerÇekleştirilebilir. Bu duruma örnek bir ifade aşağıda yer<br />
  almaktadır.</p>
<p><strong>  mysql>      GRANT     ALL    ON   deneme.*       TO   mysqluser@192.168.6.105        IDENTIFIED     BY<br />
  &#8216;sifre&#8217; REQUIRE SSL;</strong></p>
<p>  Bu şekilde mysqluser kullanıcısının deneme veritabanına 192.168.6.105 ip adresinden SSL<br />
  kullanımı aktif olacak şekilde bağlanması zorlanmış olur. Eğer SSL kullanımı aktif olmadan<br />
  bağlanmaya Çalışılırsa aşağıda görülen hata mesajı ile karşılaşılacaktır</p>
<p>  MySQL        kullanıcıların    erişim    izinleri   MySQL       veritabanındaki   db  tablosuna   göre<br />
  belirlenmektedir. Üncelikle bu tabloya MySQL root kullanıcısı haricinde kimsenin erişim izni<br />
  olmamalıdır.</p>
<p> MySQL erişim kontrolleri GRANT ve REVOKE deyimleri ile belirlenmektedir. GRANT deyimi<br />
 ile hangi kullanıcının hangi veritabanına hangi ip adresi ya da ip adreslerinden erişim<br />
 sağlayabileceği belirlenmektedir. MySQL root kullanıcısının uzak erişimine izin verilmemeli,<br />
 sadece yerel erişimlere tam makine adı ya da ip adres bilgisi belirtilerek izin verilmelidir.<br />
 Ürneğin “kullanıcı1” MySQL kullanıcısının 192.168.8.98 ip adresinden veritabanı1<br />
 veritabanına “şifre” şifresi ile erişim sağlaması iÇin aşağıdaki SQL sorgusu Çalıştırılmalıdır.<br />
 mysql > GRANT ALL ON veritabanı1.* TO kullanıcı1@192.168.8.98 IDENTIFIED BY<br />
 &#8216;sifre&#8217;;<br />
 Aynı şekilde “kullanıcı2” MySQL kullanıcısının yerel olarak “veritabanı2” isimli veritabanı<br />
 üzerinde sadece INSERT, SELECT ve DELETE yetkilerine sahip olabilmesi iÇin aşağıdaki sql<br />
 sorgusu Çalıştırılmalıdır.</p>
<p><strong> mysql > GRANT SELECT,INSERT,DELETE ON veritabanı2.* TO kullanıcı2@localhost<br />
 IDENTIFIED BY &#8216;sifre&#8217;;</strong></p>
<p> Yukarıda     belirtilen   kullanıcıların    ilgili  veritabanları   üzerindeki    erişim    izinlerinin<br />
 yapılandırılmasının ardından, Db ve User tablosundaki ilgili alanları ortak olarak görüntülemek<br />
 iÇin aşağıda belirtilen SQL sorgusu Çalıştırılmalıdır.<br />
 mysql    >   select     db.Host,db.Db,db.User,user.Password                 from    db,user     where<br />
 db.Host=user.Host and db.User=user.User ;</p>
<p><strong><br />
  3.8 Parola Güvenliği</strong></p>
<p>  Hemen hemen her uygulamada olduğu gibi MySQL sunucu servisi iÇin de kullanıcı<br />
  parolalarının güvenliği Çoğu zaman en kritik durum olarak göze batmaktadır. MySQL<br />
  kullanıcıları MySQL veritabanı iÇerisinde bulunan User tablosunda tutulmaktadır. MySQL<br />
  kullanıcı şifreleri aÇık olarak bu tabloda yer almazlar. şifreler tek yönlü geri döndürülemez bir<br />
  algoritma ile şifrelenerek tutulmaktadırlar.<br />
  şifrelenmiş olarak User tablosunda tutulan özet (hash) bilgilerinden, deneme yanılma (brute<br />
  force) yolu ile ya da farklı yöntemler uygulanarak parola bilgisi elde edilebilmektedir. şekil<br />
  3-8”de görüldüğü gibi MySQL root kullanıcısının şifrelenmiş parola bilgileri elde edilmiş ve<br />
  ardından deneme yanılma (brute force) yolu ile parola bilgisi, görüldüğü gibi aÇıkÇa<br />
  görüntülenmiştir.</p>
<p> Belirli aralıklar kullanıcı şifrelerinin hash (özet ) bilgileri brute force (deneme yanılma) yolu ile<br />
 aÇık olarak görüntülenmeye Çalışılmalı, eğer parola bilgileri kolayca elde edilebilecek parolalar<br />
 varsa bu parola bilgisine sahip kullanıcıların tahmin edilmesi zor parola seÇimleri yapmaları<br />
 sağlanmalıdır.</p>
<p><strong> 3.9 MySQL Süper Kullanıcı Güvenliği</strong></p>
<p> MySQL root kullanıcısının adı tahmin edilmesi zor, farklı bir isim ile değiştirilmelidir. Bu<br />
 şekilde MySQL root kullanıcısının parola bilgisi deneme yanılma yolu ile tahmin edilmesi<br />
 zorlaşacaktır. Bu şekilde sadece MySQL root kullanıcısının sadece şifresini değil aynı<br />
 zamanda kullanınıcı adını da tahmin etmelidir. MySQL root kullanıcısının adını değiştirmek<br />
 iÇin aşağıdaki adımlar sırası ile uygulanmalıdır.<br />
<strong><br />
 mysql > update user set user=&#8221;dbadmin&#8221; where user=&#8221;root&#8221;;</strong></p>
<p> MySQL root kullanıcısının parola bilgisi ön tanımlı olarak boş gelmektedir. Yani hiÇbir parola<br />
 bilgisi olmaksızın MySQL root kullanıcısı ile erişim hakkı elde edilebilmektedir. MySQL root<br />
 kullanıcısının parola bilgisi tahmin edilmesi zor bir parola ile değiştirilmelidir. Bunun iÇin<br />
 aşağıdaki adımlar uygulanmalıdır.<br />
<strong><br />
   mysql > SET PASSWORD FOR root@localhost=PASSWORD(&#8216;yenisifre&#8217;);</strong></p>
<p> MySQL root kullanıcı hesabının komut satırından değiştirilmesinin doğuracağı güvenlik<br />
 aÇıklıkları olabilmektedir. Ürneğin yukarıdaki işlem sonrası “.mysql_history” dosyasında bu<br />
 işlemin kayıtları aşağıdaki şekilde görülmektedir.</p>
<p> # cat .mysql_history<br />
 â?¦<br />
 UPDATE 40mysql.user 40SET 40Password=PASSWORD(&#8216;yenisifre&#8217;) 40WHERE 40Us<br />
 er=&#8217;root&#8217;;<br />
 #<br />
  Bu dosyanın erişim izinlerinden kaynaklanan bir durumda MySQL root kullanıcısının parolası<br />
 görülebilmektedir. Ya da parolanın “mysqladmin” gibi komut satırı araÇları ile değiştirilmesi<br />
 sırasında, sistem üzerinde oturum aÇmış bir kullanıcı ps komutu yardımı ile şifreyi elde<br />
 edebilir. Bu duruma örnek bir durum aşağıda gösterilmiştir. User kullanıcısının sistemde<br />
 “Mysqladmin” komutunun Çalışmasını gözlemlediği sırada, root kullanıcısının MySQL root<br />
 şifresi mysqladmin komutu yardımı ile değiştirilmektedir.<br />
 $ while [ 1 ]; do ps auwx | grep &#8220;mysqladmin&#8221;| grep -v &#8220;grep&#8221;; done</p>
<p>  MySQL root kullanıcısına yeni şifre atama işleminin gerÇekleştirildiği sırada mysqladmin<br />
  komutunu gözlemleme olayının sonucu aşağıdaki şekilde gerÇekleşmiştir.<br />
  â?¦<br />
  root         15823     0.0    0.2     7748     1740 pts/0            S+     09:55     0:00 MySQLadmin<br />
  -u root -p password sifre<br />
  â?¦</p>
<p>  Görüldüğü gibi MySQL root kullanıcısına atanan yeni şifre aÇık olarak görülmektedir.<br />
  3.10 Ürnek Veritabanı ve Tabloların Güvenliği<br />
  Kurulum ile birlikte ön tanımlı olarak gelen örnek veritabanı ve MySQL root kullanıcısı<br />
  haricindeki kullanıcıların silinmesi gerekmektedir. Bunun iÇin aşağıdaki adımların sırası ile<br />
  uygulanması gerekmektedir. Bu şekilde anonim kullanıcıların da sistemden kaldırılması<br />
  sağlanmış olacaktır.</p>
<p>  mysql > drop database test;<br />
  mysql > use MySQL;<br />
  mysql > delete from user where not (host=&#8221;localhost&#8221; and user=&#8221;root&#8221;);<br />
<strong><br />
  3.11 Yama Kontrolü</strong></p>
<p>  Herhangi bir uygulama iÇin en önemli güvenlik aÇığı, uygulama iÇin yayınlanmış güvenlik<br />
  yamalarıdır. Düzenli olarak kullanımak istenen uyguglma iÇin yayınlanmış güvenlik yamaları<br />
  takip edilmeli ve uygulanmalıdır. MySQL sunucu servisi iÇinde bu tehlike şekil 2-1”de bugüne<br />
  kadar MySQL sunucu servisi iÇin yayınlanmış güvenlik yamaları ile gösterilmiştir. İlgili<br />
  güvenlik yamaları http://www.mysql.com/ adresinden ya da bu konu üzerinde Çalışma gösteren<br />
  sitelerin e-posta listelerinden düzenli olarak takip edilmeli ve uygulanmalıdır.<br />
<strong><br />
  3.12 DNS Güvenliği</strong></p>
<p>  DNS ön bellek zehirlenmesi gibi DNS saldırılarını önlemek iÇin, kullanıcı yetkilendirmesi<br />
  esnasında kullanılan DNS isimleri yerine ip adres bilgisi kullanılmalıdır. Bu duruma örnek bir<br />
  kullanım aşağıda gösterilmiştir.<br />
<strong></p>
<p> 4 . K AYNAKÜA</strong><br />
     [1 ] http://dev.mysql.com/doc/<br />
     [2 ] http://www.securityfocus.com/infocus/1726<br />
     [3 ] http://www.securityfocus.com/infocus/1706<br />
     [4 ] http://forge.mysql.com/wiki/Security_Vulnerabilities_In_MySQL_Server<br />
     [5 ] Hazırlayan Gökhan ALKAN</p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:4,
Toplam Okunma Sayısı:3309</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-veritabani-guvenligi.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mysql Thread Stack Overrun Hatasının Çözümü</title>
		<link>http://www.mysqlsupport.net/mysql-thread-stack-overrun-hatasinin-cozumu.html</link>
		<comments>http://www.mysqlsupport.net/mysql-thread-stack-overrun-hatasinin-cozumu.html#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:57:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[Hatasının Çözümü]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Mysql Thread Stack Overrun Hatasının Çözümü]]></category>
		<category><![CDATA[mysqld -O thread_stack=#]]></category>
		<category><![CDATA[Thread Stack]]></category>
		<category><![CDATA[Thread Stack Overrun]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=693</guid>
		<description><![CDATA[Mysql Thread Stack Overrun Hatasının Üözümü, GeÇenlerde yeni kurulum yaptığım bir mysql serverda insert işlemi yaparken aşağıdaki hata kodu ile karşılaştım. Hata Metni: Thread stack overrun: 4728 bytes used of a 131072 byte stack, and 131072 bytes needed. Use &#8216;mysqld -O thread_stack=#&#8217; to specify a bigger stack. Üözümü: /etc/my.cnf config dosyasını aÇıp thread_stack=256K ifadesini ekleyip. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mysql Thread Stack Overrun Hatasının Üözümü,</strong></p>
<p>GeÇenlerde yeni kurulum yaptığım bir mysql serverda insert işlemi yaparken<br />
aşağıdaki hata kodu ile karşılaştım.</p>
<p><strong>Hata Metni:</strong></p>
<p>Thread stack overrun:  4728 bytes used of a 131072 byte stack, and 131072 bytes needed.  Use &#8216;mysqld -O thread_stack=#&#8217; to specify a bigger stack.</p>
<p><strong>Üözümü:</strong></p>
<p>/etc/my.cnf  config dosyasını aÇıp<br />
thread_stack=256K ifadesini ekleyip. Mysql server&#8217;ı restart ederseniz.Problem<br />
Çözülmüş olur.</p>
<p>Tayfur BÖLER<br />
Database Administrator</p>
<p><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:2,
Toplam Okunma Sayısı:1736</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-thread-stack-overrun-hatasinin-cozumu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql Data Export</title>
		<link>http://www.mysqlsupport.net/mysql-data-export.html</link>
		<comments>http://www.mysqlsupport.net/mysql-data-export.html#comments</comments>
		<pubDate>Tue, 23 Jun 2009 11:44:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[data transfer]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Mysql Data Export]]></category>
		<category><![CDATA[mysql txt export]]></category>
		<category><![CDATA[sorgu export]]></category>
		<category><![CDATA[txt data aktarimi]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=689</guid>
		<description><![CDATA[Mysql Data Export, Bu makalemde Mysql de sorgu sonuÇlarını .txt dosyasına nasıl export edeceğimizi anlatacağım. Script: SELECT * FROM personel INTO OUTFILE &#8216;c:\personel.txt&#8217; Script AÇıklama: Yukarıdaki script , Personel tablosunun iÇindeki tüm kayıtları c: diskinin iÇinde personel.txt dosyasının iÇine kaydeder. Bir sonraki makalelerde görüşmek dileğiyle, Tayfur BÖLER Database Administrator Bugun Okunma Sayısı:1, Toplam Okunma Sayısı:1853]]></description>
			<content:encoded><![CDATA[<p><strong>Mysql Data Export,</strong></p>
<p>Bu makalemde Mysql de sorgu sonuÇlarını <strong>.txt </strong>dosyasına nasıl export<br />
edeceğimizi anlatacağım.</p>
<p><strong>Script:</strong><br />
<strong><br />
SELECT * FROM personel INTO OUTFILE &#8216;c:\personel.txt&#8217;</strong></p>
<p><strong>Script AÇıklama:</strong></p>
<p>Yukarıdaki script , Personel tablosunun iÇindeki tüm kayıtları<br />
c: diskinin iÇinde personel.txt dosyasının iÇine kaydeder.</p>
<p>Bir sonraki makalelerde görüşmek dileğiyle,<br />
Tayfur BÖLER<br />
Database Administrator</p>
<p><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:1,
Toplam Okunma Sayısı:1853</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-data-export.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mysql de CSV Dosyasından Insert Islemi</title>
		<link>http://www.mysqlsupport.net/mysql-de-csv-dosyasindan-insert-islemi.html</link>
		<comments>http://www.mysqlsupport.net/mysql-de-csv-dosyasindan-insert-islemi.html#comments</comments>
		<pubDate>Mon, 22 Jun 2009 16:17:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[csv import]]></category>
		<category><![CDATA[csv insert]]></category>
		<category><![CDATA[csv tablo insert]]></category>
		<category><![CDATA[Dosyasından Insert Islemi]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[Mysql  CSV Dosyasından Insert Islemi]]></category>
		<category><![CDATA[Mysql de CSV]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=686</guid>
		<description><![CDATA[Mysql de CSV Dosyasından Insert Islemi, .csv dosyasından mysql de herhangi bir tabloya insert işlemini aşağıdaki şekilde yapabilirsiniz. load data local infile &#8216;D:\deneme.csv&#8217; into table deneme_tablo.deneme_database fields escaped by &#8216;\&#8217; terminated by &#8216;,&#8217; lines terminated by &#8216;rn&#8217; (`numara`); Script AÇıklaması: load data local infile &#8216;D:\deneme.csv&#8217; &#8211;> iÇeri atılacak kaynak dosya into table deneme_tablo.deneme_database &#8211;> iÇine [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mysql de CSV Dosyasından Insert Islemi,</strong></p>
<p><strong>.csv</strong> dosyasından mysql de herhangi bir tabloya insert işlemini<br />
aşağıdaki şekilde yapabilirsiniz.</p>
<p><strong>load data local infile &#8216;D:\deneme.csv&#8217;<br />
into table deneme_tablo.deneme_database<br />
fields escaped by &#8216;\&#8217; terminated by &#8216;,&#8217; lines terminated by &#8216;rn&#8217; (`numara`);</strong><br />
<strong><br />
Script AÇıklaması:</strong></p>
<p>load data local infile &#8216;D:\deneme.csv&#8217;  <strong>&#8211;></strong> iÇeri atılacak kaynak dosya<br />
into table deneme_tablo.deneme_database <strong>&#8211;></strong> iÇine data atılacak olan database ve tablo ismi<br />
fields escaped by &#8216;\&#8217; terminated by &#8216;,&#8217; lines terminated by &#8216;rn&#8217; (`numara`);<strong> &#8211;></strong> kolon veya kolonların ismi</p>
<p>Bir sonraki makalelerde görüşmek dileğiyle,</p>
<p>Tayfur BÖLER<br />
Database Administrator</p>
<p><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:1,
Toplam Okunma Sayısı:1806</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-de-csv-dosyasindan-insert-islemi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel 2007 ile Mysql&#8217;den Veri Üekme</title>
		<link>http://www.mysqlsupport.net/excel-2007-ile-mysqlden-veri-cekme.html</link>
		<comments>http://www.mysqlsupport.net/excel-2007-ile-mysqlden-veri-cekme.html#comments</comments>
		<pubDate>Wed, 29 Apr 2009 13:37:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[Excel 2007 ile Mysql'den Veri Çekme]]></category>
		<category><![CDATA[Excel Mysql]]></category>
		<category><![CDATA[Excel veri akatarımı]]></category>
		<category><![CDATA[Mysql Excel]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=583</guid>
		<description><![CDATA[Excel 2007 ile Mysql&#8217;den Veri Üekme , Bu dersimizde, Microsoft Office 2007 ile gelen Excel 2007 ile Mysql&#8217;den veri Çekmeyi ve raporlamayı anlatacağım. İlk önce bilgisayarınıza ; http://dev.mysql.com/get/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.5-win32.msi/from/pick#mirrors adresinden Mysql ODBC 5.1.5 driverını download edip, kurmanız gerekmektedir. Download iÇin sizden email ve password istenilecektir. Siz en altta Â» No thanks, just take me to the [...]]]></description>
			<content:encoded><![CDATA[<p><strong></p>
<p>Excel 2007 ile Mysql&#8217;den Veri Üekme ,</p>
<p></strong></p>
<p>Bu dersimizde, Microsoft Office 2007 ile gelen Excel 2007 ile<br />
Mysql&#8217;den veri Çekmeyi ve raporlamayı anlatacağım.</p>
<p>İlk önce bilgisayarınıza ;<br />
http://dev.mysql.com/get/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.5-win32.msi/from/pick#mirrors  adresinden Mysql ODBC 5.1.5 driverını download edip,<br />
kurmanız gerekmektedir. Download iÇin sizden email ve password istenilecektir.<br />
Siz en altta  <strong>Â» No thanks, just take me to the downloads!</strong><br />
linkine tıklarsanız size download iÇin izin verecektir.</p>
<p>Download işlemini bitirdikten sonra, install işlemini next lerler tamamlayınız.</p>
<p>Bu işlemden sonra, <strong>Başlat/Ayarlar/Denetim Masasından/Yönetimsel AraÇlara</strong><br />
tıklayınız. <strong>Veri Kaynakları (ODBC) </strong>&#8216;e giriniz. Devamında <strong>System DNS</strong><br />
kulakÇığına geÇiniz ve Ekle diyerekten<strong> Mysql ODBC  5.1 Driver&#8217;ı</strong> seÇiniz ve<br />
son tuşuna basınız.<strong> Data source name</strong> kısmına herhangi bir isim verin,<br />
<strong>Server </strong>kısmına Mysql Serverın adresini yazınız.(localhost vs..)<br />
<strong>User ve Passwordu</strong> girdikten sonra <strong>Database&#8217;i </strong>seÇiniz. Ve<br />
<strong>test</strong> tuşuna basınız burada hata almamanız gerekmektedir.<br />
Bu işlemlerden sonra ODBC bağlantımızı oluşturmuş olduk.</p>
<p>şimdi ise Excel&#8217;inizi aÇıp <strong>Veri</strong> kısmına gelip, <strong>Diğer Kaynaklardan</strong><br />
kısmından <strong>Veri Bağlantı Sihirbazına </strong>giriniz. AÇılan menüde,<br />
<strong>Diğer/Gelişmiş&#8217;i</strong> seÇip , <strong>Microsoft OLE DB Provider for ODBC<br />
Drivers&#8217;ı</strong> seÇip, <strong>Tamam</strong>&#8216;a tıklayın. Gelen menüde ise <strong>Makina<br />
Veri Kaynağı </strong>kulakÇığına geÇip, Oluşturduğunuz ODBC&#8217;yi<br />
seÇip <strong>Tamam</strong> diyoruz.Böylece Veritabanımızdaki tablolar<br />
karşımıza geliyor. Buradan istediğimiz tabloyu seÇip, datamızı<br />
excel&#8217;e atmış oluyoruz.</p>
<p><strong>BİLGİ:</strong>Bu ders Videolu olarakda anlatılacaktır.</p>
<p>Bir sonraki makalede görüşmek dileğiyle,</p>
<p>Tayfur BÖLER<br />
Database Administrator</p>
<p><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:1,
Toplam Okunma Sayısı:1534</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/excel-2007-ile-mysqlden-veri-cekme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQL TRIGGER</title>
		<link>http://www.mysqlsupport.net/mysql-trigger.html</link>
		<comments>http://www.mysqlsupport.net/mysql-trigger.html#comments</comments>
		<pubDate>Fri, 24 Apr 2009 05:41:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[mysql trigger]]></category>
		<category><![CDATA[mysql trigger ders]]></category>
		<category><![CDATA[tetikleyici]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[trigger nedir]]></category>
		<category><![CDATA[trigger syntax]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=555</guid>
		<description><![CDATA[MYSQL TRIGGER, Bu dersimizde Mysql de triggerlardan bahsedeceğiz. Trigger kelime anlamı olarak tetikleyici anlamına gelir.Teknik olarak da herhangi bir tabloda yapılacak olan bir işlemde &#8216;bu işlem insert,update,delete olabilir&#8217; başka bir yerdeki başka bir işlemi Çalıştırmaya yarayan sql kod parÇacıklarıdır.Başka bir yerdeki, başka bir işlemden kastımız yine başka bir tabloda yapılabilecek olan insert,update, delete işlemi veya [...]]]></description>
			<content:encoded><![CDATA[<p><strong>MYSQL TRIGGER,</strong></p>
<p>Bu dersimizde Mysql de triggerlardan bahsedeceğiz.<br />
Trigger kelime anlamı olarak <strong>tetikleyici </strong>anlamına gelir.Teknik<br />
olarak da herhangi bir tabloda yapılacak olan bir işlemde<br />
&#8216;bu işlem insert,update,delete olabilir&#8217; başka bir yerdeki başka bir işlemi<br />
Çalıştırmaya yarayan sql kod parÇacıklarıdır.Başka bir yerdeki,<br />
başka bir işlemden kastımız yine başka bir tabloda yapılabilecek olan<br />
insert,update, delete işlemi veya herhangi bir stored procedure veya<br />
başka bir triggerın Çalıştırılması olabilir.<br />
Mysql&#8217;e trigger özelliği <strong>MySQL 5.0.2 </strong>versiyonu ile eklendi.Bir trigger yazarken<br />
Mysql userımızın trigger yaratma yetkisinin olup olmadığına dikkat<br />
etmeniz gerekmektedir.<br />
Bu ek bilgilerden sonra syntax hakkında bilgi verelim:</p>
<p><strong>SYNTAX:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">CREATE
    [DEFINER = { user | CURRENT_USER }]
    TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt</pre></td></tr></table></div>

<p><strong>trigger_time:</strong>Trigger&#8217;ın Çalışma zamanıdır. Yani After(sonra,işlemden sonra Çalış)<br />
veya Before(önce,işlemden önce Çalış).</p>
<p><strong>trigger_event:</strong>Trigger&#8217;ın hangi olayda Çalışcağını yazıyoruz. Bu olaylar:<br />
INSERT,UPDATE veya DELETE olayları olabilir.</p>
<p><strong>trigger_stmt:</strong> BEGIN &#8230;&#8230;. END blogları arasında tanımladığımız<br />
olay ve zamanda yapılmasını istediğimiz işleri yazıyoruz.</p>
<p>Yayınlanacak olan <strong>Trigger örnekleri </strong>isimli makalemde, örnek uygulamalar anlatılacaktır.<br />
Ve videolu olarakta trigger örnekleri anlatılacaktır.</p>
<p>Bir sonraki makalede görüşmek dileğiyle,</p>
<p>Tayfur BÖLER<br />
Database Administrator</p>
<p><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:1,
Toplam Okunma Sayısı:2041</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-trigger.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL Sunucu ve İstemci Trafiğinin şifrelenmesi</title>
		<link>http://www.mysqlsupport.net/mysql-sunucu-ve-istemci-trafiginin-sifrelenmesi.html</link>
		<comments>http://www.mysqlsupport.net/mysql-sunucu-ve-istemci-trafiginin-sifrelenmesi.html#comments</comments>
		<pubDate>Wed, 22 Apr 2009 09:57:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[ağ trafiği]]></category>
		<category><![CDATA[İstemci Trafiğinin Şifrelenmesi]]></category>
		<category><![CDATA[MySQL Sunucu]]></category>
		<category><![CDATA[MySQL Sunucu ve İstemci Trafiğinin Şifrelenmesi]]></category>
		<category><![CDATA[trafik]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=547</guid>
		<description><![CDATA[MySQL Sunucu ve İstemci Trafiğinin şifrelenmesi Aksi belirtilmedikÇe MySQL sunucusu ile istemcisi arasındaki ağ trafiği aÇık metin olarak gerÇekleştirilmektedir. Aslında bu sadece MySQL”e has bir özellik değil, sunucu istemci mimarisi ile Çalışan bütün uygulamalar iÇin geÇerli bir durumdur. İstemci sunucu arasındaki ağ trafiğini gözlemlemek isteyen kişiler, sunucu istemci arasında aÇık metin olarak gerÇekleştirilen ağ trafiğini [...]]]></description>
			<content:encoded><![CDATA[<p><strong>MySQL Sunucu ve İstemci Trafiğinin şifrelenmesi </strong></p>
<p>Aksi belirtilmedikÇe MySQL sunucusu ile istemcisi arasındaki ağ trafiği aÇık metin olarak gerÇekleştirilmektedir. Aslında bu sadece MySQL”e has bir özellik değil, sunucu istemci mimarisi ile Çalışan bütün uygulamalar iÇin geÇerli bir durumdur. İstemci sunucu arasındaki ağ trafiğini gözlemlemek isteyen kişiler, sunucu istemci arasında aÇık metin olarak gerÇekleştirilen ağ trafiğini dinlereyek hassas bilgilere erişim sağlayabilirler.</p>
<p>Aşağıda MySQL sunucusu ile istemcisi arasındaki ağ trafiğinin gözlemlenmesi halinde nelerin yapılabileceğini göstermek aÇısından, MySQL sunucu sistemi üzerinde tcpdump ve strings komutları kullanılarak gerÇekleştirilen gözlemlenebilen SQL sorgu işlemleri gösterilmiştir. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;"># tcpdump -l -i eth0 -w - src or dst port 3306 | strings
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
5.0.45
wRuuj5g,
LLBPALES
show databases
SCHEMATA
Datab
show tables
TABLE_NAMES
select @@version_comment
@@version_com
show databases
SCHEMATA
Datab</pre></div></div>

<p>Görüldüğü gibi MySQL istemcisinden gerÇekleştirilen SQL sorguları aÇık olarak görülmektedir. Aynı durum MySQL sunucusu ve istemcisi arasındaki trafiğin şifreli olarak iletildiğinde aşağıdaki gibi olmaktadır.  </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;"> # tcpdump -l -i eth0 -w - src or dst port 3306 | strings
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
gLO
%DgLOY
gLOY
lnp@
%HgLOY4
5.0.45
bA['P;xl
gLO
gLO_
4nq@
%KgLO_
gLOo
4nr@</pre></div></div>

<p>Yukarıda görüldüğü gibi MySQL sunucusu ve istemcisi arasındaki ağ trafiği şifreli bir biÇimde gerÇekleştirildiğinde, sorgular aÇık olarak görüntülenememektedir.</p>
<p>MySQL sunucu ve istemci trafiğinin şifrelenmesi iÇin uygulanabilecek yöntemlerden bir taneside OpenSSL uygulamasının kullanılmasıdır. MySQL sunucu, istemci trafiğinin şifrelenmesi iÇin kullanılabilecek aÇık kaynak kodlu yöntemlerden bazıları olarak OpenSSH , OpenVPN ve OpenSSL gösterilebilir. Burada OpenSSL kullanılarak nasıl sunucu istemci arasındaki trafiğin şifreleneceği anlatılacaktır. Üncelikle mevcut MySQL sunucu servisinde SSL desteğinin aktif olup olmadığına bakılmalıdır. şekil 1&#8242;de görüldüğü gibi “SHOW VARIABLES LIKE &#8216;have_openssl&#8217;“ sql sorgusu ile görüntülenebilir. </p>
<p><img alt="" src="http://www.mysqlsupport.net/wp-content/uploads/2009/04/1.png" title="resim1" class="alignnone" width="495" height="225" /><br />
<strong>şekil 1 MySQL Ssl Desteğinin Kontrol Edilmesi</strong></p>
<p>“Value” değerinin  “DISABLED” olması, veritabanı sunucusunun SSL desteğinin olduğunu fakat doğru parametreler ile başlatılmadığını göstermektedir. SSL desteğinin kullanılabilmesi iÇin MySQL sunucu yazılımının derlenmesi esnasında “&#8211;with-vio &#8211;with-openssl” paremetrelerinin kullanılması gerekmektedir.</p>
<p>MySQL sunucu servisine SSL desteğinin verilmesinin ardından sunucu ve istemci iÇin gerekli sertifikalar oluşturulmalı ve son olarak sunucu ve istemci yapılandırma dosyalarında gerekli işlemler gerÇekleştirilmelidir. Burada sertifika otoritesi iÇin gerekli sertifikalar bizim tarafımızdan üretilerek, sunucu ve istemci iÇin oluşturulacak sertifikalar bu sertifika yardımı ile üretilecektir. Bunun iÇin  öncelikle sertifikalar iÇin uygun bir dizin belirlenmeli ve gerekli sertifikalar oluşturulmalıdır. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">    # mkdir /usr/local/mysql-certs
    # cd /usr/local/mysql-certs</pre></div></div>

<p>Sertifika iÇin gerekli dizinin oluşturulmasının ardından öncelikle sertifika otoritesi iÇin gerekli seritifikalar oluşturulmalı ardından, sunucu ve istemci iÇin gerekli sertifikalar oluşturulmalıdır. Sertifika otoritesi iÇin gerekli sertifikayı oluşturmak iÇin aşağıdaki adımlar sırası ile uygulanmalıdır</p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;"> # openssl genrsa -out ca-key.pem 2048
Generating RSA private key, 2048 bit long modulus ...........................................................................++++++ e is 65537 (0x10001)
# openssl req -new -x509 -nodes -days 1000 -key ca-key.pem -out ca-cert.pem
You are about to be asked to enter information that will be incorporated
into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:TR
State or Province Name (full name) [Berkshire]:Kocaeli
Locality Name (eg, city) [Newbury]:Gebze
Organization Name (eg, company) [My Company Ltd]:Tubitak/Uekae
Organizational Unit Name (eg, section) []:Bilgi Guvenligi
Common Name (eg, your name or your server's hostname) []:Uekae/Bilgi Guvenligi
Email Address []: bilgi@bilgiguvenligi.gov.tr</pre></div></div>

<p>Ardından sunucu iÇin gerekli sertifikalar oluşturulmalıdır. Bunun iÇin aşağıdaki adımların sırası ile takip edilmesi gerekmektedir. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">    # openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem -out server-req.pem
    Generating a 2048 bit RSA private key
    ...............................................................................................................................+++
    ...................................................................+++ writing new private key to 'server-key.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [GB]:TR
    State or Province Name (full name) [Berkshire]:Kocaeli
    Locality Name (eg, city) [Newbury]:Gebze
    Organization Name (eg, company) [My Company Ltd]:Tubitak/Uekae
    Organizational Unit Name (eg, section) []:Bilgi Guvenligi
    Common Name (eg, your name or your server's hostname) []:Uekae/Bilgi Guvenligi
    Email Address []: bilgi@bilgiguvenligi.gov.trBu mail adresi spam botlara karşı korumalıdır, görebilmek iÇin Javascript aÇık olmalıdır
&nbsp;
    Please enter the following 'extra' attributes to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    # openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
    Signature ok
    subject=/C=TR/ST=Kocaeli/L=Gebze/O=Tubitak/Uekae/OU=Bilgi Gvenligi/CN=Uekae/Bilgi Guvenligi/emailAddress= bilgi@bilgiguvenligi.gov.trBu mail adresi spam botlara karşı korumalıdır, görebilmek iÇin Javascript aÇık olmalıdır
    Getting CA Private Key</pre></div></div>

<p>Son olarak MySQL istemcisi iÇin gerekli sertifikalar oluşturulmalıdır. Bunun iÇin aşağıdaki adımların sırası ile takip edilmesi gerekmektedir. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">    # openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem -out client-req.pem
    Generating a 2048 bit RSA private key ..........+++.....................................................................+++ writing new private key to 'client-key.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [GB]:TR
    State or Province Name (full name) [Berkshire]:Kocaeli
    Locality Name (eg, city) [Newbury]:Gebze
    Organization Name (eg, company) [My Company Ltd]:Tubitak/Uekae
    Organizational Unit Name (eg, section) []:Bilgi Guvenligi
    Common Name (eg, your name or your server's hostname) []:Uekae/Bilgi Guvenligi
    Email Address []: bilgi@bilgiguvenligi.gov.trBu mail adresi spam botlara karşı korumalıdır, görebilmek iÇin Javascript aÇık olmalıdır
&nbsp;
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    # openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
    Signature ok
    subject=/C=TR/ST=Kocaeli/L=Gebze/O=Tubitak/Uekae/OU=Bilgi Guvenligi/CN=Uekae/Bilgi Guvenligi/emailAddress= bilgi@bilgiguvenligi.gov.trBu mail adresi spam botlara karşı korumalıdır, görebilmek iÇin Javascript aÇık olmalıdır
    Getting CA Private Key</pre></div></div>

<p>Sertifikaların oluşturulmasının ardından kullanım iÇin MySQL sunucu tarafında sertifikaların MySQL yapılandırma dosyası iÇerisinde gerekli belirtimlerinin gerÇekleştirilmesi gerekmektedir. Bunun iÇin yapılandırma dosyasında sunucu taraflı yapılandırma iÇin [mysqld] bölümü iÇerisine aşağıda belirtilen satırların eklenmesi gerekmektedir. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">     [mysqld]
    ssl-ca=/usr/local/MySQL-certs/cacert.pem
    ssl-cert=/usr/local/MySQL-certs/server-cert.pem
    ssl-key=/usr/local/MySQL-certs/server-key.pem</pre></div></div>

<p>MySQL sunucu üzerinde sunucu taraflı gerekli yapılandırmanın gerÇekleştirilmesinin ardından MySQL sunucu servisi yeninden başlatılmalıdır ardından MySQL sunucu servisi üzerinde SSL kullanımının aktif olduğu görülebilecektir. </p>
<p><img alt="" src="http://www.mysqlsupport.net/wp-content/uploads/2009/04/2.png" title="resim2" class="alignnone" width="515" height="287" /><br />
<strong>şekil 2 MySQL Sunucu Servisi İÇin SSL Kullanımının Aktif Hale Getirilmesi</strong></p>
<p>Ardından MySQL istemcisi sertifika kullanımı iÇin gerekli yapılandırmanın gerÇekleştirilmesi gerekmektedir. Burada uzak MySQL istemcisi ile komut satırından MySQL sunucusu ile iletişim sağlanıp sorguların gerÇekleştirileceği göz önünde bulundurularak, aşağıdaki adımların sırası ile takip edilmelidir. Kullanılmak istenen MySQL istemcisine gore sertifika kullanımı ile ilgili yapılandırma farklılık göstereceği unutulmamalıdır. Üncelikle sertifika yetkilisi ve istemcisi iÇin gerekli sertifikalar MySQL istemcisi üzerinde belirlenen uygun bir dizine taşınmalıdır. Burada “/usr/local/mysql-certs” dizini olarak belirlenmiştir. İsteğe gore farklı bir dizin seÇilebilmektedir. </p>
<p><img alt="" src="http://www.mysqlsupport.net/wp-content/uploads/2009/04/3.png" title="resim3" class="alignnone" width="325" height="148" /><br />
<strong>şekil 3 MySQL İstemcisinde SSL Kullanımı Aktif Olmadan Ünce</strong></p>
<p>MySQL istemcisi iÇin SSL sertifika kullanımının durumunu “SHOW STATUS LIKE “Ssl_cipher”“ SQL sorgusu Çalıştırılarak elde edilebilir. Bu duruma örnek bir kullanım şekil 3”de gösterilmiştir.</p>
<p>MySQL komut satırı istemcisinde SSL kullanımını aktif hale getirmek iÇin yapılandırma dosyasında sertifikaların tam yolları belirtilmelidir. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">    [client]
    ssl-ca=/usr/local/mysql-certs/cacert.pem
    ssl-cert=/usr/local/mysql-certs/client-cert.pem
    ssl-key=/usr/local/mysql-certs/client-key.pem</pre></div></div>

<p>İlgili ayaların ardından MySQL istemcisinde “SHOW STATUS LIKE “Ssl_cipher”“ sorgusu tekrar Çalıştırılarak şifreleme iÇin kullanılacak olan anahtar görüntülenebilir. </p>
<p><img alt="" src="http://www.mysqlsupport.net/wp-content/uploads/2009/04/4.png" title="resim4" class="alignnone" width="338" height="146" /><br />
<strong>şekil 4 şifreleme İÇin Kullanılacak Olan Anahtarın Durumunun Görüntülenmesi</strong></p>
<p>SSL kullanımının aktif olmasının ardından MySQL kullanıcılarının SSL kullanımı ile MySQL sunucu servisi ile iletişime geÇmelerini zorlamak iÇin GRANT ifadesinde “REQUIRE SSL” kullanılarak gerÇekleştirilebilir. Ürnek bir ifade aşağıda yer almaktadır. </p>

<div class="wp_syntax"><div class="code"><pre class="language" style="font-family:monospace;">mysql&gt; GRANT ALL ON deneme.* TO mysqluser@192.168.6.105Bu mail adresi spam botlara karşı korumalıdır, görebilmek iÇin Javascript aÇık olmalıdır  IDENTIFIED BY 'sifre' REQUIRE SSL;</pre></div></div>

<p>Bu şekilde mysqluser kullanıcısının deneme veritabanına 192.168.6.105 ip adresinden SSL kullanımı aktif olacak şekilde bağlanması zorlanmış olur. Eğer SSL kullanımı aktif olmadan bağlanmaya Çalışılırsa şekil 5”de görülen hata mesajı ile karşılaşılacaktır. </p>
<p><img alt="" src="http://www.mysqlsupport.net/wp-content/uploads/2009/04/5.png" title="resim5" class="alignnone" width="606" height="28" /><br />
<strong>şekil 5 SSL Kullanımı Zorlanmış MySQL Kullanıcısının SSL Kullanımı Olmaksızın Bağlantı GerÇekleştirilmesi Esnasında Karşılaşılan Hata Mesajı</strong></p>
<p><strong><br />
KAYNAKLAR</strong></p>
<p>[1] http://dev.mysql.com/doc/<br />
[2] http://www.securityfocus.com/infocus/1726<br />
[3] http://forge.mysql.com/wiki/Security_Vulnerabilities_In_MySQL_Server </p>
<p>Bu Makale http://www.bilgiguvenligi.gov.tr sitesinden alınmıştır.<br />
Makale Yazarı ise: Gökhan ALKAN.<br />
Aksi Belirtilmediği iÇin bu makale yayınlanmıştır.<br />
Aksi Belirtilir ise yayından kaldırılır.<br />
iletişim iÇin:tayfurboler@gmail.com<br />
Gökhan ALKAN&#8217;a teşekkürler.</p>
<p>Tayfur BÖLER<br />
Database Administrator</p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:0,
Toplam Okunma Sayısı:974</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/mysql-sunucu-ve-istemci-trafiginin-sifrelenmesi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The FEDERATED Storage Engine (MySQL 6.0.7)</title>
		<link>http://www.mysqlsupport.net/the-federated-storage-engine-mysql-607.html</link>
		<comments>http://www.mysqlsupport.net/the-federated-storage-engine-mysql-607.html#comments</comments>
		<pubDate>Fri, 17 Apr 2009 06:54:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mysql Dersleri]]></category>
		<category><![CDATA[fedarated table engine]]></category>
		<category><![CDATA[FEDERATED table]]></category>
		<category><![CDATA[Mysql 6.0.7]]></category>
		<category><![CDATA[The FEDERATED Storage Engine]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.net/?p=497</guid>
		<description><![CDATA[The FEDERATED Storage Engine (MySQL 6.0.7), FEDERATED Depolama Motoru MySQL 6.0.7 ile birlikte başlamıştır. Kelime anlamı olarak Birleşik Depolama Motoru anlamına gelir. Yerel bir sunucudaki veritabanı server ile uzak bir sunucudaki veritabanı server arasında , clustering veya replication olmadan erişim sağlar. Mysql server kurulumunda default olarak aktif gelmeyen bu Motoru kullanmak iÇin aktifleştirmeniz gerekmektedir. FEDERATED [...]]]></description>
			<content:encoded><![CDATA[<p><strong></p>
<p>The FEDERATED Storage Engine (MySQL 6.0.7),</p>
<p></strong></p>
<p><strong>FEDERATED </strong>Depolama Motoru <strong>MySQL 6.0.7</strong> ile birlikte başlamıştır.<br />
Kelime anlamı olarak Birleşik Depolama Motoru anlamına gelir. Yerel<br />
bir sunucudaki veritabanı server ile uzak bir sunucudaki veritabanı server<br />
arasında , clustering veya replication olmadan erişim sağlar.</p>
<p>Mysql server kurulumunda default olarak aktif gelmeyen bu Motoru<br />
kullanmak iÇin aktifleştirmeniz gerekmektedir. <strong>FEDERATED </strong>depolama<br />
motorunda datalar, uzak sunucudaki <strong>.FRM</strong> dosyalarında tutulur.</p>
<p><strong>FEDERETED Table Grafik:</strong></p>
<div class="wp-caption alignnone" style="width: 485px"><img alt="FEDERATED Table Çalışma mantığı" src="http://www.mysqlsupport.net/wp-content/uploads/2009/04/se-federated-structure.png" title="FEDERATED GRAFIK" width="475" height="269" /><p class="wp-caption-text">FEDERATED Table Çalışma mantığı</p></div>
<p><strong></p>
<p>şimdi Uzak Sunucuda bir tablo yaratalım:</p>
<p></strong></p>
<p><em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">CREATE TABLE uzak_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    adi   VARCHAR(32) NOT NULL DEFAULT '',
    tc_no  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX adi (adi)
)
ENGINE=MyISAM
DEFAULT CHARSET=latin1;</pre></td></tr></table></div>

<p></em></p>
<p>uzak_table ismindeki tablomuza federated tablo oluşturmak iÇin iki yöntem mevcuttur.</p>
<p><strong>1-</strong> Yerel sunucuda bir tablo oluştururuz ve connection string bilgilerini veririz.<br />
Uzak sunucudaki tablo ile connectionu sağlaması iÇin.<br />
<strong>2-</strong>Connection iÇin <strong>FEDERATED server</strong> yaratırız ve bu serverı kullanırız.</p>
<p><strong><br />
<strong>1.Method : </strong>Yerel sunucuda bir fedarated tablo yaratalım.</strong></p>
<p><em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">   CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    adi   VARCHAR(32) NOT NULL DEFAULT '',
    tc_no  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:3306/federated/uzak_table';</pre></td></tr></table></div>

<p></em><br />
<strong></p>
<p>CONNECTION SYNTAX:<br /></strong></p>
<p><em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name</pre></td></tr></table></div>

<p></em></p>
<p> <strong> schema       :</strong> Mysql tarafından tanınan bir bağlantı protokolüdür.<br />
  <strong>user_name   :</strong> Bağlantı iÇin kullanıcı adı. Bu kullanıcı uzak sunucuda oluşturulur. Uzak sunucudaki tabloda<br />
                     (SELECT, INSERT, UPDATE ve benzeri) gerekli işlemleri gerÇekleştirmek iÇin<br />
                     uygun yetkilere sahip olması gerekir.<br />
<strong>  password     :</strong> Kullanıcı_adı iÇin ilgili şifre.<br />
  <strong>host_name   :</strong> Ana bilgisayar adını veya uzaktan sunucusunun IP adresi.<br />
  <strong>port_num     : </strong>Uzak sunucusunun bağlantı noktası numarasını belirtiniz. Varsayılan 3306 dır.<br />
<strong>  db_name     : </strong>Uzak sunucudaki db ismi.<br />
 <strong> tbl_name     :</strong> Uzak sunucudaki tablonun adı. </p>
<p><strong>2.Method: </strong>FEDERATED tablo oluşturmak iÇin SERVER kullanma:</p>
<p>FEDARATED server&#8217;ı local sunucuda oluşturuyoruz.</p>
<p><em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">CREATE SERVER fed_server&lt;br /&gt;
FOREIGN DATA WRAPPER mysql&lt;br /&gt;
OPTIONS (USER 'fed_user', HOST 'remote_host', PORT 2306, DATABASE 'federated');</pre></td></tr></table></div>

<p></em></p>
<p>şimdi oluşturduğumuz fed_server ismindeki FEDERATED server&#8217;ı kullanarak<br />
local server da bir FEDERATED tablo yaratalım.</p>
<p><em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">    CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    adi   VARCHAR(32) NOT NULL DEFAULT '',
    tc_no  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='fed_server/uzak_table';</pre></td></tr></table></div>

<p></em></p>
<p>CONNECTION kısmında görüdğünüz gibi<strong> FEDERATED server</strong> ismini ve<br />
uzak sunucuda oluşturduğumuz tablonun ismini yazmamız yeterlidir.</p>
<p>Bir sonraki makalelerde görüşmek dileğiyle,</p>
<p>Tayfur BÖLER<br />
Database Administrator</p>
<p><script type="text/javascript" src="http://w.sharethis.com/button/sharethis.js#publisher=4969258a-227b-4163-a200-3e9a272c960a&amp;type=wordpress&amp;buttonText=Bu%20Yaz%C4%B1y%C4%B1%20Payla%C5%9F&amp;style=rotate&amp;post_services=facebook%2Cdigg%2Cdelicious%2Cybuzz%2Ctwitter%2Cstumbleupon%2Creddit%2Ctechnorati%2Cmixx%2Cblogger%2Ctypepad%2Cwordpress%2Cgoogle_bmarks%2Cwindows_live%2Cmyspace%2Cfark%2Cbus_exchange%2Cpropeller%2Cnewsvine%2Clinkedin"></script></p>

<p class="sayac_bilgi">Bugun Okunma Sayısı:0,
Toplam Okunma Sayısı:2588</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.net/the-federated-storage-engine-mysql-607.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

