ホームページ >データベース >mysql チュートリアル >MySQL エラー 1449: 「Definer ユーザーが存在しない」問題を解決するには?
はじめに
MySQL を使用する場合、ユーザーは次のような問題に遭遇する可能性があります。データベース オブジェクトの定義者ユーザーが存在しないことを示すエラー メッセージ。このエラー (コード 1449) は、通常、元の定義者ユーザーが存在しない別のデータベースまたはサーバーからオブジェクトをインポートするときに発生します。
原因
定義者ユーザーは、データベース ビュー、トリガー、またはプロシージャが作成された場所。データベース オブジェクトを別のシステムにインポートする場合、定義者ユーザーも宛先システムに存在する必要があります。定義者ユーザーが存在しない場合、MySQL はエラー 1449 をスローします。
Solutions
1。定義者の変更
この問題を解決するには、定義者ユーザーを宛先システムに存在するユーザーに変更します。これは、インポート プロセス中にダンプから DEFINER ステートメントを削除することで実行できます。
オブジェクトが既にインポートされている場合は、次の手順を使用して後で定義子を変更できます:
ビューの場合:
SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
ストアド プロシージャの場合:
UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%';
2.欠落しているユーザーの作成
定義者ユーザーが宛先システムに存在しない場合は、GRANT ステートメントを使用して作成できます。 「someuser」を欠落しているユーザーの名前に置き換えます。
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
追加の考慮事項
次の手順に従うことで、エラー 1449 を解決し、データベースを正常にインポートまたは管理できます。定義者ユーザーを持つオブジェクト。
以上がMySQL エラー 1449: 「Definer ユーザーが存在しない」問題を解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。