web-dev-qa-db-ja.com

1時間あたりのルート最大接続数が

間違えて、ルートのmax_connections列を「1」に設定したので、接続して変更しようとするたびに、次のようになります。

エラー1226(42000):ユーザー 'root'が 'max_connections_per_hour'リソースを超えました(現在の値:1)

それは私の個人的なサーバーだったので、他のユーザーはいません。

私はもう試した:

  • サーバーのリセット
  • Mysqlプロセスのリセット

しかし、何も機能しません。誰かがそれを変更する方法を知っていますか?

1
J. Pichardo

MySQL経由でその属性を削除する必要があります

アプローチ#1

これはMySQL 5.7でのみ機能します

ALTER USER root@localhost MAX_CONNECTIONS_PER_HOUR 0;

他のrootユーザー(root@'127.0.0.1'root@'%'など)がある場合は、rootユーザーごとに個別の ALTER USER を実行する必要があります。

アプローチ#2

UPDATE mysql.user SET max_connections = 0 WHERE user='root';
FLUSH PRIVILEGES;

MySQLにログアウトしてログインすると、違いに気付くはずです

ノート

ログアウトしている場合は、1時間後に戻ってもう一度やり直す必要があります。

1時間待つことができず、mysqlを再起動できる場合は、 --skip-grant-tables を有効にすることができます。

service mysql restart --skip-grant-tables --skip-networking

次に、ログインしてAPPROACH #2を実行できます

次に、mysqlを通常どおり再起動します

service mysql restart

UPDATE 2016-11-25 14:49 EDT

Windowsでは、少し複雑です。

MSIインストーラーを使用してMySQLをWindowsにインストールしたと仮定すると、my.iniはありません。

ここがクレイジーになる場所ですが、ここに行きます...

ステップ01

管理者としてWindowsコマンドラインにログインし、実行します

C:\> net stop mysql

ステップ02

Windowsでmysqld.exeがあるフォルダーを見つけます。

通常はC:\ProgramData\MySQL\MySQL Server 5.6のようになります

Mysqldを起動してログインします(パスワードは不要です)。

cd "C:\ProgramData\MySQL\MySQL Server 5.6"
start mysqld --skip-grant-tables --skip-networking
mysql

ステップ03

適用APPROACH #2

UPDATE mysql.user SET max_connections = 0 WHERE user='root';
FLUSH PRIVILEGES;
exit

ステップ04

Mysqldを手動でシャットダウンする

mysqladmin shutdown

ステップ05

Mysqldをサービスとして開始する

net start mysql

試してみる !!!

3
RolandoMySQLDBA