• 05-02-2007, 12:40:17
    #1
    Merhaba;

    Kullandığım dedicated üzerinden çalışan sitelerde bazen aşağıdaki gibi bir hata çıkıyor. Sanırım my.cnf dosyasındaki max_user_connections satırından kaynaklanıyor.

    O satırın değerini 600 yaptım ama hala böyle hata alıyorum.
    Sunucu üzerindeki yoğunluktan kaynaklanıyor sanırım.
    Bu problemi nasıl aşabilirim?

    PHP kodlarken eksik mi yapıyorum acaba max_user_connections limitini aşıyorum? Önerilerinizi bekliyorum.

    Warning: mysql_connect(): User veritabani has already more than 'max_user_connections' active connections in /var/www/vhosts/domain.com/httpdocs/islemci.php on line 31
  • 05-02-2007, 12:47:26
    #2
    Kurumsal PLUS
    cat /etc/my.cnf

    yaz sonuçları buraya kopyala..
  • 05-02-2007, 12:54:11
    #3
    Merhaba;

    my.cnf dosyam: (Sunucu CentOS 4.2, Plesk 8.1)

    [mysqld]
    set-variable=local-infile=0
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    max_allowed_packet=64M
    query_cache_limit=1M
    query_cache_size=32M
    query_cache_type=1
    max_user_connections=25
    max_connect_errors=10
    thread_concurrency=2
    myisam_sort_buffer_size=64M
    max_connections=500

    default-character-set=latin5
    default-collation=latin5_turkish_ci
    init_connect='SET NAMES latin5'

    [mysql.server]
    user=mysql
    basedir=/var/lib

    [mysqld_safe]
    err-log=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

    [mysqldump]
    max_allowed_packet=16M
  • 05-02-2007, 14:05:33
    #4
    sunucuoptimizasyon.com
    max_user_connections hala 25 görünüyor değişiklikleri kaydedememişsin galiba
  • 05-02-2007, 14:10:00
    #5
    Arkadaşım çok özür dilerim

    max_user_connections=25
    max_connections=500

    ikisi birbirine benzediğinden karıştırmışım. Düzelteyim o zaman
  • 17-07-2010, 23:58:59
    #6
    Plesk de bu hatayı aşabilmeniz içiin IIS Application Pool ayarınızı yapılandırmanız gerekmektedir.

    Buradaki yazıda Windows Plesk için anlatmıştım. Linux Plesk de de durum farklı değil.

    Saygılarımla,
    Aytaç Engin
    Zed Teknoloji
  • 18-07-2010, 00:57:41
    #7
    Üyeliği durduruldu
    ZedTeknoloji adlı üyeden alıntı: mesajı görüntüle
    Plesk de bu hatayı aşabilmeniz içiin IIS Application Pool ayarınızı yapılandırmanız gerekmektedir.

    Buradaki yazıda Windows Plesk için anlatmıştım. Linux Plesk de de durum farklı değil.

    Saygılarımla,
    Aytaç Engin
    Zed Teknoloji

    Mysql'in user diye tanımladığı şey ile IIS Application Pool'un ne alakası var? Birisi ile bağlantısı olmayan kavramlar bunlar. Alakasız bir çözüm önermişsiniz, keza çözüm bu olsa idi linux sunucularda hiç böyle bir sorun yaşamazdınız.
  • 18-07-2010, 15:41:05
    #8
    cemoka adlı üyeden alıntı: mesajı görüntüle
    Mysql'in user diye tanımladığı şey ile IIS Application Pool'un ne alakası var? Birisi ile bağlantısı olmayan kavramlar bunlar. Alakasız bir çözüm önermişsiniz, keza çözüm bu olsa idi linux sunucularda hiç böyle bir sorun yaşamazdınız.

    Bunu neye dayanarak söylüyorsunuz. Alakasız bir çözüm değildir. Windows makinalarda bu sorunu bu şekilde çözebileceğinizi belirttim. 12 Yıldır bu işi yapıyorum. Alakasız bir çözüm değil.

    Saygılarımla,
    Aytaç Engin
    Zed Teknoloji
  • 18-07-2010, 17:46:30
    #9
    Üyeliği durduruldu
    ZedTeknoloji adlı üyeden alıntı: mesajı görüntüle
    Bunu neye dayanarak söylüyorsunuz. Alakasız bir çözüm değildir. Windows makinalarda bu sorunu bu şekilde çözebileceğinizi belirttim. 12 Yıldır bu işi yapıyorum. Alakasız bir çözüm değil.

    Saygılarımla,
    Aytaç Engin
    Zed Teknoloji

    Aldığın hatanın türkçe anlamını biliyor musun?

    Maximum Kullanıcı Anlık Bağlantı sayısına ulaştın diyor. Bu kullanıcı mysqlin kendi içerisinde oluşturduğu bir obje, yani ne ile bağlandığının bir önemi yok ( Yani iis, apache, exe vs vs ).

    Örnek olayda aynı anda 1 kullanıcının 25 adet bağlantı açmasına izin verilmiş, kullanıcı web sayfasına giriyor, yazdığın kod mysql'e bağlanıyor ( kendi Mysql kullanıcı adı ve şifresi ile ) işlemini yapıyor, bitiriyor ve bağlantıyı kapatıyor. İşte kapatmadığı zaman veya işlem uzun zaman aldığında ard arda bağlantılar açılıyor, belli bir süre sonra anlık 25 bağlantı limitine ulaşıyor kullanıcı ve bu hatayı alıyorsun.

    İşte bu yüzden Mysql Kullanıcı Anlık Bağlantı limiti ile IIS Application Pool'un bir alakası yok, ve çözüm değil senin önerdiğin.


    Bu hataya sebep olabilecek sebepler;

    1) Yazdığın kodda mysql açtığın mysql bağlantılarını kapatmamışsındır.
    2) Veritabanın güzel dizayn edilmemişse, sorguların optimize edilmemiş ise yapmak istediğin sorgu normalde maximum 1 saniyede işlemini bitiremiyordur, sorgu için mysql tablosuna kilit koyulduğundan diğer bağlantılar ilk sorgunun işlemini bitirmesini bekliyordur. Ard arda gelen bu askıda kalan bağlantılar, bu uyarı ile karşılaşmana sebep oluyordur.
    3) Mysql sunucun optimize değildir veya donanım yetersizdir, yoğun siten varsa çok giren çıkan olduğu için 2. adımdaki olaylar oluyordur.

    İlk 2 sebepden dolayı hata alıyorsan kodlarını, veritabanı dizaynını ve mysql sorgularını elden geçirmen lazım. 3. sebepten dolayı ise mysql sunucunu optimize edip, donanımını güçlendirmen lazım.