MySQL Workbench 8.0を使用しています。すべてのテーブル、ストアドプロシージャ、およびデータを含むビューを含むテストデータをDBにダンプしようとしています。
インポートしようとすると、インポートが1つのエラーで終了したと表示され、エラーは
変数「sql_mode」を「NO_AUTO_CREATE_USER」の値に設定できません操作は終了コード1で失敗しました
また、インポート後にデータベースをチェックすると、テーブルのみが表示されますが、ストアドプロシージャはまったくありません。
これをどのように修正しますか?
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コマンドラインクライアントでこの問題を解決し、最終的に、ダンプされたすべてのテーブル、データ、ルーチン、および関数を含むデータベースを適切にインポートすることができました。
うまくいけば、他の人の時間を節約できます。
解決策ではないにしても、回避策を見つけました。 Linuxを使用してsedユーティリティを取得し、前のコメントで述べたように2つのsedコマンドを実行します。また、mysqldumpオプションを使用する必要がありました:--set-gtid-purged=OFF