ERROR 1130: Host is not allowed to connect to this MySQL server

Uzaktaki bir bilgisayarda bulunan Mysql Sunucusuna bağlanmak isteğinizde başlıktaki hata mesajını alıyorsanız, Mysql sunucu uzak erişime kapalıdır demektir.

Uzaktaki sunucunun ip adresi 10.1.1.166 olsun. root kullanıcısıyla mysql sunucuya bağlanmak isteyelim.

#mysql –h 10.1.1.166 –u root –p

Aşağıdakine benzer bir hata mesajı alırız.

ERROR 1130: Host ‘10.1.1.2’ is not allowed to connect to this MySQL server

Buradaki “10.1.1.2” bağlanmak istediğimiz bilgisayarın ip adresidir. root kullanıcısına ‘10.1.1.2’ nolu makinadan uzaktaki mysql sunucuya bağlanma izni vermek için mysql konsoluna giriş yapıyoruz

#mysql -u root -p
password:

mysql komut satırında iken aşağıdaki komutları veriyoruz.

mysql> use mysql
mysql> grant all on *.* to root@'110.1.1.2' identified by 'root-şifreniz';
mysql> FLUSH PRIVILEGES;

Mysql Root Şifresini Değiştirme

mysql root şifresini unutmuş olabiliriz, veya değiştirmek isyebiliriz. Bunun için *nix sistemlerde root olarak giriş yaptıktan sonra aşağıdaki komutu çalıştırmamız yeterli.

/usr/bin/mysqladmin -u root -p password 'new-password'

Too many connections hatası

Mysql servera yapılan bağlantı sınırı sayısı  aşıldığında  “Too many connections” hatasını alırız. Öncelikle betiklerimizde açtığımız bağlantıların işimiz bittiğinde kapatıldığından emin olmalıyız.  Yani betiklerimiz en altında mysql_close() ile açtığımız bağlantıları kapatmalıyız. Eğer hala Bu hatayı alıyorsak windows sistemlerde my.ini, linux sistemlerdeki my.cnf dosyasında bulunan max_connections değişkeninin değerini yükseltabiliriz. Bu değerin gereğinde fazla artırılması sistem performansını düşereceğinden ihtiyaca göre yükseltilmelidir.  Varsayılan olarak bağlantı sınırı sayısı 100 dür. Aşağıdaki gibi arttırabiliriz.

max_connections = 150

Karakter dizilerindeki tarih ve zamanı parse etmek

Aşağıdaki gibi bir tarih stringimiz olsun, Örneğin MySQL datetime alanındaki veriler gibi.

‘2008-12-13 06:11:25’

Bunu Yıl, Ay, Gün, Saat, Dakika, Saniye şeklinde parse etmek isteyelim.

1
2
3
4
5
6
7
8
$tarih = "2008-12-13 06:11:25";
preg_match("/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/",$tarih,$diziTarih);
$yil = $diziTarih[1]; // 2008
$ay = $diziTarih[2];  // 12
$gun = $diziTarih[3]; //13
$saat = $diziTarih[4]; //06
$dakika = $diziTarih[5]; //11
$saniye = $diziTarih[6]; //25

preg_match işlevi düzenli ifade ile verilen eşleşmeyi bulduğu takdirde bunu $diziTarih dizisine doldurur.
$diziTarih[0] tüm eşleşmeyi verir yani ‘2008-12-13 06:11:25’ değerini.
Diğer bölümler 1 inci anahtardan başlayarak devam eder.

MySQL CONCAT Fonksiyonu

CONCAT(str1,str2,...)

MySql CONCAT fonksiyonu iki stringi birleştirir ve tek bir string yapar.

Çalışanlar tablosu aşağıdaki gibi olsun.

+-----+-----+--------+

| id  | adi |soyadi  |

+-----+-----+--------+

| 1   |Ali  |Kaya    |

| 2   |Veli |Soylu   |

| 3   |Esra |Güzel   |

+-----+-----+--------+

adi ve soyadı kolonlarını birleştirmek isteyelim:

mysql> SELECT CONCAT(adi,soyadi) AS adi_ve_soyad FROM calisanlar

+-----+----------+

| adi_ve_soyadi  |

+----------------+

|AliKaya         |

|VeliSoylu       |

|EsraGüzel       |

+----------------+