ここ数日、会社は新しいコンポーネントベースのプロジェクトを立ち上げました。これには、mysql データベース関連テクノロジの使用が必要です。私は以前 mongodb を使用していたので、mysql のことをほとんど忘れていました。そのため、学習を開始することしかできませんでした。 Linux 仮想マシンでもう一度実行します。
基本的な追加、削除、変更、確認は問題ありませんでしたが、幸いにもデータのバックアップでいくつかの問題が発生しました。
インターネット上で言及されているMysqlのAPIとバックアップコマンドは、 mysqldump -uroot –p バックアップするデータベース名 > 対象パス/対象ファイル名.sql なので、入力したのですが、結果は 2002 Exception (追加: 最初にこのコマンドを使用したとき、mysqldump が見つからないというメッセージが表示されました。その後、ソフト リンク ln を使用して mysqldump コマンドの実際のアドレスを usr/bin に接続しました):
mysqldump:Got error: 2002: Can't connect to local MySQL server through socket'/tmp/mysql.sock' (2) when trying to connect, 如图1:
図 2 に示すように、いくつかの変更が加えられました。
ただし、現時点では 2002 は利用できなくなり、代わりに 1045 エラーが表示されます。 mysqldump: Got error: 1045: Access Deny for図 3 に示すように、ユーザー 'root' @'localhost' (パスワードを使用: YES) で接続しようとしました:
これは、root ユーザーと localhost の権限に問題があることを意味していると思います。図 4 に示すように、ホストは % に設定されていました。
そこで、インターネットで検索した後、別のバックアップコマンドを見つけました。図 5 に示すように、これが機能することがわかりました。
この時点で、mysql データベースは Linux 仮想マシンに正常にバックアップされましたが、このコマンドは長すぎると思いました。 API は正しいはずなので、最適化する必要があると考えました。
ということで、エラー1045が発生したので、おそらくユーザー権限に問題があると推測できるので、ここから始めます root localhostがない場合は追加します。図 4 に示すように、データベースに入り、mysql を使用して、図 6 に示すようにユーザーを追加します。
ユーザー テーブルを再度確認すると、図に示すように、正常に追加されたことがわかります。図 7:
その後、図 8 に示すように、最適化後にバックアップ コマンドを実行できます。
明らかにコマンドは短くなりましたが、まだ十分に短くないので、次のように検索しました。情報を再度確認し、解決策を見つけました。mysql.sock の実際のアドレスを 2002 エラーのアドレスにリンクする必要があります。私の変更は図 9 に示すとおりです。 API の内容を確認します。コマンドを入力して Enter キーを押すと、再び成功します。図 10 に示すように、バックアップが完了しました。
3 つのコマンド メソッドに細分化されています。理解するだけでも、実際には 1 つだけであることがわかります。
上記は、Linux で mysql コマンドを使用してデータをバックアップする問題の詳細な説明です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。