
Ubuntu Server 16.04 xenialのLEMPスタックで実行しmysql -u root -p
(ルートのパスワード)、mysqlシェル内で次のコマンドを実行しました。
mysqldump --databases "${domain}" > test.sql
しかし、何らかの理由でこれは失敗します。
エラー1064(42000):SQL構文が正しくありません。行1「mysqldump --databases MY_DB_NAME> dump.sql」の近くで使用する正しい構文については、MySQL Serverバージョンのマニュアルを確認してください。
この単純なmysqldumpコマンドが失敗するのはなぜですか?
修正する:
Mysql CLIの外部で同じコマンドを実行しても失敗します。
mysqldump --databases "${domain}" > test.sql
mysqldump: エラーが発生しました: 1045: 接続しようとしたときに 'root'@'localhost' ユーザーへのアクセスが拒否されました (パスワードの使用: NO)。
答え1
mysqldump
プログラムだ。 SQL文ではありません。mysql>
プロンプトで実行せずにシステムシェルプロンプトで実行します。
答え2
ユーザーとパスワードの資格情報ではなく名前のみを提供しました。
これは働きます:
mysqldump -u root -p"${rpsw}" "${domain}" > test.sql