を固定私は、MySQLからこのエラーを取得しています: 「データベースに接続できません[ユーザーxyzxyzはすでに 『MAX_USER_CONNECTIONS』アクティブな接続よりも多く持っている」=MAX_USER_CONNECTIONSエラーの意味と
私の現在のMAX_USER_CONNECTIONSを50、と私は実行していますVPSで
最初のステップ(私はそれが助けてくれるはずです)を読んで私は自分のサイトの操作の大部分であるすべてのバックグラウンド操作を処理する新しいmysqlユーザーを作成しました。実際のサイトのユーザーから生成されただけのmysqlコールを処理 -
- xyzxyz_backgrounds-取扱バックグラウンド処理
- xyzxyz_users:だから今、私は2人のユーザーがいます。その変化のユーザー後も
はなって報告されている「すでにxyzxyz_users 『を有しMAX_USER_CONNECTIONS』アクティブな接続よりも」
これは私が実行している忙しいサイトですが、私は間違いを持っていない場合、私は疑問に思いますこれを引き起こしているコードで。
「SHOW PROCESSLIST」と「SHOW FULL PROCESSLIST」を実行しようとしましたが、返される行は2行しか表示されません(show processlistの1つのSLEEPと1つのQUERY)。
として、私の知る、私は永続的なMySQL接続のいずれかのタイプを持っていない以下
は私が(「必要」を使用して)各PHPファイルの先頭にMySQLの接続を開始使うコードです
if (!(isset($use_pdo))) {
$conn_mls = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);
mysql_query("SET NAMES utf8");
}else{
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
$dsn = "mysql:host=127.0.0.1;dbname=$dbname;charset=utf8";
$conn = new PDO($dsn, $dbuser , $dbpass , $options);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
};
私はmysqliを使用していますが、永続的な接続を使用しているとは思わない場合は、必要に応じてコードを投稿できます。
いつmysqlが新しい接続を作成しますか? max_user_connections = 50の場合、同時に50人のユーザーしかWebサイトに接続できないということですか? コード内の接続を手動で閉じる必要がありますか?それともmysqlがそれを処理しますか?
なぜPDOとmysqliの両方を使用していますか?このページ:http://php.net/manual/en/pdo.connections.phpが役に立つかもしれません。 –
私はそうしているとしましょう。違いはありますか? pdo、msqli、legacy mysqlとは別の接続がありますか?私のすべてのページがpdoで、100人がサイトにアクセスしようとしている場合、私はまだこのエラーを受け取りますか? – hershkoy