web-dev-qa-db-ja.com

変数「sql_mode」は「NO_AUTO_CREATE_USER」の値に設定できません

MySQL Workbench 8.0を使用しています。すべてのテーブル、ストアドプロシージャ、およびデータを含むビューを含むテストデータをDBにダンプしようとしています。

インポートしようとすると、インポートが1つのエラーで終了したと表示され、エラーは

変数「sql_mode」を「NO_AUTO_CREATE_USER」の値に設定できません操作は終了コード1で失敗しました

また、インポート後にデータベースをチェックすると、テーブルのみが表示されますが、ストアドプロシージャはまったくありません。

これをどのように修正しますか?

10
Rajeswari ML

MySQL Workbench 6.1 CEからデータベースをエクスポートし、MySQL WorkBench 8.0.11の新しいバージョンにインポートしようとした後、最近この問題が発生しました。それぞれは、コミュニティサーバーインストーラーmsiでインストールされました。

いくつかの検索を行った後、MySQL Webサイトでこのバグレポートに出会いました。 8.0.11の5.7.22で作成されたレストランダンプ

私にとってうまくいったのは、ダンプファイルを手動で調べてステートメントを削除することでした:

ダンプファイル内の各ルーチンダンプの上にある「NO_AUTO_CREATE_USER」。 画像を削除するステートメントの例

これをした後、私はエラーを受け取りました

318行目のエラー1418(HY000):この関数の宣言にはDETERMINISTIC、NO SQL、またはREADS SQL DATAが含まれておらず、バイナリロギングが有効になっています(youmight安全性の低いlog_bin_trust_function_creators変数を使用したい)

しかし、この回答された質問を参照した後: この関数は宣言にDETERMINISTIC、NO SQL、またはREADS SQL DATAのいずれも含まず、バイナリロギングが有効になっています そして単に入力:

SET GLOBAL log_bin_trust_function_creators = 1;

mySQLコマンドラインクライアントでこの問題を解決し、最終的に、ダンプされたすべてのテーブル、データ、ルーチン、および関数を含むデータベースを適切にインポートすることができました。

うまくいけば、他の人の時間を節約できます。

25
Dillon

解決策ではないにしても、回避策を見つけました。 Linuxを使用してsedユーティリティを取得し、前のコメントで述べたように2つのsedコマンドを実行します。また、mysqldumpオプションを使用する必要がありました:--set-gtid-purged=OFF

0
pbnelson