MySQLのリファレンスを読んで、コマンドを抜粋してまとめてみた
mysqlが提供するオプションを表示
1 2 3 |
mysql --help |
オプションの説明も出力されて便利。分かりやすい。
サーバーへの接続
1 2 3 4 5 6 7 8 9 10 |
$> mysql -h host -u user -p Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25338 to server version: 8.0.29-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> |
mysqlプロンプトが立ち上がる。
MySQLが実行されているのと同じマシンにログインしている場合は、ホストを省略できる。
1 2 3 |
$> mysql -u user -p |
パスワードが「mypass」だった場合、次の方法で指定できるが、
画面にパスワードが残ってしまうので、基本的には-pオプションだけ指定し、実際のパスワードの入力は後で行うのが
公式でも推奨されている。
1 2 3 |
mysql -u user -pmypass |
データベースの使用
1 2 3 4 5 6 7 8 9 10 |
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+ |
サーバーに現在存在するデータベースを確認することができる。
1 2 3 4 |
mysql> USE test Database changed |
データベースが存在する場合は、アクセスすることができる。
データベースの作成
1 2 3 |
mysql> CREATE DATABASE menagerie; |
mysqldumpを使用したバックアップの作成
mysqldumpを使用したSQL形式でのデータのダンプ
デフォルトでは、mysqldumpは情報をSQLステートメントとして標準出力に書き込む。出力をファイルに保存できる。
1 2 3 |
$> mysqldump [arguments] > file_name |
すべてのデータベースをダンプするには、次のオプション --all-databasesを指定してmysqldumpを呼び出す。
1 2 3 |
$> mysqldump --all-databases > dump.sql |
特定のデータベースのみをダンプするには、コマンドラインでそれらに名前を付け、次の--databases オプションを使用できる。
1 2 3 |
$> mysqldump --databases db1 db2 db3 > dump.sql |
単一データベースの場合、--databasesオプションは省略できる。
1 2 3 |
$> mysqldump test > dump.sql |
SQL形式のバックアップの再ロード
SQLステートメントで構成される mysqldump によって記述されたダンプファイルをリロードするには
それをmysqlクライアントへの入力として使用。
1 2 3 |
$> mysql < dump.sql |
または、 mysql 内から、次のsourceコマンド を使用する。
1 2 3 |
mysql> source dump.sql |
ファイルが CREATE DATABASEとUSEステートメントを含まない単一データベースダンプである場合は、
最初にデータベースを作成する(必要な場合)。
1 2 3 |
$> mysqladmin create db1 |
次に、ダンプファイルをロードするときにデータベース名を指定する。
1 2 3 |
$> mysql db1 < dump.sql |
または、 mysql 内からデータベースを作成し、それをデフォルトデータベースとして選択して、ダンプファイルをロードする。
1 2 3 4 5 |
mysql> CREATE DATABASE IF NOT EXISTS db1; mysql> USE db1; mysql> source dump.sql |
最後に
Dockerで環境構築をする際、ポートの接続が上手くいかなかったり、mysqlコマンドの知識がなさすぎたので
この辺りの理解も深めていきたいと思いました!