データベースのエクスポートに関して問題が発生しています。まず、MySQL Workbench 5.2.47を使用していることを明確にする必要があります。これまでの手順は次のとおりです。
http://mysqlworkbench.org/2012/07/migrating-from-ms-sql-server-to-mysql-using-workbench-migration-wizard/ の指示に従って作成しましたMSSQL DB
に変換するためのMySQL DB
との接続。
次に、データがデータベースにインポートされていることも確認しました。
今、私はそれをSQLファイル/またはできればfrm、myi、mydファイルにエクスポートしてサーバーに配置したいと思います。
私はそれらをからエクスポートしようとしました
サーバー管理->データエクスポート
すでにセキュリティからパスワードを変更しました(ユーザーと特権)
しかし、私は問題に遭遇します
Dumping test (all tables)
Running: mysqldump.exe --defaults-extra-file="c:\users\d_micha\appdata\local\temp\tmpgtwa_m.cnf" --user=root --max_allowed_packet=1G --Host=localhost --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events --no-data "test"
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
Operation failed with exitcode 2
何が間違っているのかわかりません。Googleで検索して解決策を見つけましたが、通常はエクスポートする必要があります。
その他の情報は、リクエストに応じて提供されます。
ありがとうございました。
LOCK TABLES
権限がない場合に、この問題が発生しました。このエラーは、残りのアクセス拒否エラーがログに記録される前に表示されます。ワークベンチのデータエクスポートパネルの詳細設定でLOCK TABLES
を無効にしてみてください。
mysqldump: Got error: 1044: Access denied for user 'XXX'@'%' to database 'XXX' when doing LOCK TABLES
これはより回避策ですが、目的の結果が得られます。提供された情報を使用して、CLIからMySQLテーブルのダンプを取得します。基本的には、コピーして貼り付けるだけです。
ログからわかるようにmysqldumpにはパラメータ-defaults-fileがあります。このファイルには、passwordのような接続資格情報を含めることができます。どうやらMySQLWorkbenchはこのファイルでパスワードを提供していません(「パスワードを使用:いいえ」)。
したがって、database.cnfという名前のファイルを作成し、次のような資格情報を含むコンピューターのどこかに置きます(c:\ temp\database.cnfなど)。
[client]
user=root
password=your-root-password
single-transaction=TRUE
Host=localhost
port=3306
default-character-set=utf8
max_allowed_packet=1G
これはコマンドラインの他のパラメータでも機能するため、-single-transactionなどの他のすべてのものを追加することもできます。次にログファイルエントリを取得します。
Running: mysqldump.exe --defaults-extra-file="c:\users\d_micha\appdata\local\temp\tmpgtwa_m.cnf" --user=root --max_allowed_packet=1G --Host=localhost --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events --no-data "test"
また、-defaults-extra-fileパラメーターを置き換えてdatabase.cnfを指すようにします。また、「Running:」情報と、既に提供しているすべてのパラメーターを削除します。 database.cnf:
mysqldump.exe --defaults-extra-file="c:\temp\database.cnf" --routines --events --no-data "test"
次に、シェルを開き、MySQLWorkbench-Folderに移動して、次のコマンドを実行します。
cd c:\Program Files\MySQL\MySQL Workbench 6.3 CE\
mmysqldump.exe --defaults-extra-file="c:\temp\database.cnf" --routines --events --no-data "test" > c:\Users\user\Downloads\table1.sql
出力をファイルにルーティングすることを忘れないでください!
簡単に言うと、CLIツールmysqldumpを使用します。MySQLWorkbenchは同じことを行いますが、正しい方法ではありません。
mysqldumpは、グローバル構成ファイルが次のいずれかの場所に存在する場合は、それも読み取ります。
したがって、上記で編集したcnfファイルの情報をこの場所の1つに配置し、-defaults-file-パラメータなしでmysqldump-commandを実行できます。
これはおそらく最も洗練されたソリューションです。my.cnfは、mysqldumpが受け入れるすべてのパラメーターで機能します。では、なぜこれを使用してダンプを構成しないのですか? my.cnfにすべてのパラメータを追加するだけです
[client]
user=root
password=secretPassword
single-transaction=TRUE
Host=localhost
protocol=tcp
port=3306
default-character-set=utf8
skip-triggers=TRUE
all-databases=TRUE
all-tablespaces=TRUE
次に、パラメーターを指定せずに、シェル/コマンドラインでmysqldumpを実行します。
cd c:\Program Files\MySQL\MySQL Workbench 6.3 CE\
mysqldump.exe > c:\Users\user\Downloads\dump.sql
このソリューションを試してください https://bugs.mysql.com/bug.php?id=9164 。
実際には、Workbenchの詳細オプションを使用して、 https://stackoverflow.com/a/52944315/1694902 -以下を参照して列統計を無効にすることができます。
- 管理/データエクスポートに移動
- 「エクスポートするテーブル」リストでエクスポートするスキーマを選択します
- [詳細オプション...]ボタン(右上)をクリックします
- オプション「その他/列統計」を検索します
- 値を0に設定します
- [戻る]ボタン(右上)をクリックします
この投稿の著者によると、「残念ながら、MySQLWorkbenchを起動するたびにそれを行う必要があります。」
それは私にとってはうまくいきます、それは他の人を助けることができるかもしれません。