PDA

View Full Version : حرفه ای: خطایی ناشناخته برای سایت من



mohammad-gh
شنبه 22 بهمن 1390, 14:20 عصر
با سلام
به تازگی و از وقتی کاربرای سایت من بیشتر شده سایت خطایی عجیب میده که تا به حال پیش نیومده بود
تو این خطا که متنش رو زیر گذاشتم میگه تعداد کاربران بیشتر از حد مچاز است!
could not connect user bank name_user already has more than max_user_conneecttions active connection

میندوید این مشکل از کجاست!

مشکل دوم من مربوط به پیغام 500 یا internal server error هست
آیا یان پیغام مربوط به طراحی دیتابیس من هست یا مربوط به سرور، چون وقتی به سرور گفتم گفت شما باید دیتابیستون رو بهینه کنید مثلا روی همه تیبل ها کلید اصلی و .. تعریف کنید
من روی همه تیبل ها کلید اصلی تعریف کردم!

soroush.r70
شنبه 22 بهمن 1390, 14:48 عصر
می تونه یکی ازدلیلاش اتصالات زیاد به دیتابیس باشه با توجه به اینکه شما می گین تعداد بازدید کاربران افزایش یافته شما در نحوه ی کد نویسی وب سایت اتصالات زیادی به دیتابیس ایجاد کردید که این اتصالات ممکن است بسته نباشند

mbf5923
شنبه 22 بهمن 1390, 19:08 عصر
به طور پیشفرض MYSQL اجازه برقراری 100تا 151 کانکشن رو میده که اگه به بیش از این نیاز داشتین باید این مقدار رو تغییر بدین:
max_connections رو در MYSQL به عدد مورد نظر تغییر بدین
برای اینکه بدونید چه تعداد کانکشن رو میتونه ساپورت کنه دستور در رو در MYSQL اجرا کنید:

show variables like 'max_connections';
با دستور زیر هم قابل تغییر هستش:

SET GLOBAL max_connections = 200;
البته باید این عدد رو با توجه به رم سرور زیاد کنید که رم مشکل ساز نشه و همچنین سیستم عامل سرور هم مهم هستش.مثلا خود سایت توسعه MYSQL میگه:
سرورهایی با سیستم عامل لینوکس و سولاریس میتوانند 500 تا 1000 اتصال را به طور همزمان پشتیبانی کنند و مقدار پشتیبانی در سرور با سیستم عامل ویندوز از رابطه زیر بدست می آید:
(open tables × 2 + open connections) < 2048
راهی که خود توسعه دهنده پیشنهاد داده اینه که:

<?
ini_set('display_errors', '0');
$link = mysql_connect("localhost", "user", "pass");
if (mysql_errno() == 1040 OR mysql_errno() == 1203) {
define("DB_HOST", "some_ip:3306");//remote
define("DB_NAME", "db"); //database_name
define("DB_USER", "user"); //database user name
define("DB_PASSWORD","pass"); //database (user) password
}
else
{
define("DB_HOST", "localhost");
define("DB_NAME", "db_name2"); //database_name
define("DB_USER", "user"); //database user name
define("DB_PASSWORD","pass"); //database (user) password
}
ini_set('display_errors', '1');
//by feha at www.vision.to
?>
موفق باشید

mbf5923
شنبه 22 بهمن 1390, 19:17 عصر
راستی یه بنده خدایی گفته نامحدوده و با این کد تست زدم مشکلی پیش نیومده!(توسعه دهنده نمیدونسته)

<?php

for($i; $i<100000; $i++){
if($cs[]=mysql_connect('localhost','root','') && $s[]=mysql_select_db('test'))
$t[]=1;
else
$t[] = 0;
}

for($i; $i<100000; $i++){
mysql_close($cs[$i]);
}
print_r($t);


?>