ホームページ >データベース >mysql チュートリアル >MySQL エラー 1449:「定義者として指定されたユーザーは存在しません」を解決する方法?

MySQL エラー 1449:「定義者として指定されたユーザーは存在しません」を解決する方法?

DDD
DDDオリジナル
2024-12-10 11:18:11739ブラウズ

How to Resolve MySQL Error 1449:

MySQL エラー 1449: 定義者として指定されたユーザーが存在しません

このエラーは通常、ビュー、トリガー、またはプロシージャをインポートするときに発生します。オブジェクトの作成者がもういない別のデータベース存在します。

原因:

  • 元のデータベースでオブジェクトを定義したユーザーが現在のデータベースに存在しないか、

解決策:

オプション 1: 定義者を変更する

ビュー:

  1. 次の SQL を使用して ALTER ステートメントを生成します:

    SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ",
    table_name, " AS ", view_definition, ";")
    FROM information_schema.views
    WHERE table_schema='your-database-name';
  2. ALTER ステートメントをコピーして実行します。

保存用手順:

次の構文を使用し、'youruser' を目的のユーザーに置き換えます:

UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%'

オプション 2: 欠落しているユーザーを作成します

  1. 適切なオプションを使用して欠落しているユーザーを作成します権限:

    • ローカル開発サーバーの場合:

      GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
      FLUSH PRIVILEGES;
    • MariaDB:

      GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
      FLUSH PRIVILEGES;
  2. 必要な権限のみを付与します。

以上がMySQL エラー 1449:「定義者として指定されたユーザーは存在しません」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。