以前作成した、PostgreSQLコマンドの基本的な所をまとめ中の記事が下記だが、今回はMySQLについて。
インストールやサーバ、MySQLの起動、Node.jsとの接続関連、データベースとテーブルの初期設定についての、Webアプリケーションを新規で作成する際に知っておきたいコマンドは下記記事にまとめた。
今回はMySQLを普段運用する際に使用するコマンドを自分なりに整理。
通常のCREATE、SELECT、INSERT文はいわゆるSQL文なので、ここではMySQL固有のものを。
MySQLサーバの起動、終了
まずはこのサーバを起動させないと始まらない。
終了は2行目のコマンド。
% brew services start mysql % brew services stop mysql
MySQL monitorの起動
MySQLサーバの起動後
user=”root”、localhost、パスワードありでMySQL monitor(mysql)の起動。
% mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 Homebrew Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
MySQL monitorについて
MySQL monitor(以降mysqlと表記)とはコマンドラインでMySQLを操作する為に作られたプログラム。
コマンドはSQL文と同様にセミコロン”;”で終わるか、もしくは”\g”で終わらせる必要がある。
因みにcreatedbやdropdbをターミナル(zsh等)で行うPostgreSQLと異なり、
MySQLにおいては、サーバの起動/終了以外のほとんどの処理は、このmysqlで行うというのが現時点の理解。
MySQL monitorの終了。
“exit”や”quit”でも構わない。
mysql> \q Bye
User設定の確認
Host、 User、authentication_string(MySQL8の前までのPassword)の状況を確認。
PasswordコラムはMySQL 5.7.6で削除されたとの事で、今までPasswordコラムに入っていたデータを含む全てのcredentials(資格情報)は、MySQL8からはこのauthentication_stringに保存される。
このコラムはブログ上では”*”で隠したが、パスワードを設定したrootとその他の内容が異なっている。
mysql> SELECT HOST, USER, authentication_string FROM mysql.user; +-----------+------------------+------------------------------------------------------------------------+ | HOST | USER | authentication_string | +-----------+------------------+------------------------------------------------------------------------+ | localhost | mysql.infoschema | ********************************************************************** | | localhost | mysql.session | ********************************************************************** | | localhost | mysql.sys | ********************************************************************** | | localhost | root | ********************************************************************** | +-----------+------------------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec)
SHOW DATABASES:全てのデータベースを見る
どんなデータベースがあるのか確認。
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | item_list | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.01 sec)
USE データベース名:データベースを選択
例えばデータベース”item_list”を選択。選択して初めてそのデータベースにSQL文での指示ができる。
mysql> USE item_list; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
STATUS:ステータス情報の表示
使用中の接続とサーバーに関するステータス情報を表示
mysql> status; -------------- mysql Ver 8.0.27 for macos11.6 on x86_64 (Homebrew) Connection id: 10 Current database: item_list Current user: root@localhost SSL: ********** Current pager: less (中略) Uptime: 3 hours 25 min 39 sec Threads: 2 Questions: 49 Slow queries: 0 Opens: 168 Flush tables: 3 Open tables: 89 Queries per second avg: 0.003
新規データベースの作成
例えばCREATE DATABASEで”test”の名でデータベースを作り、SHOWでみる。
mysql> CREATE DATABASE test; Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | item_list | | mysql | | performance_schema | | sys | | test | +--------------------+ 6 rows in set (0.01 sec) mysql>
データベースの削除
データベース”test”を削除し、SHOWで削除を確認。
mysql> DROP DATABASE test; Query OK, 0 rows affected (0.02 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | item_list | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)
clear “\c”:入力途中のstatementのキャンセル
記述途中だとこの印”->”で次の入力を待つが、”\c”でその状況をキャンセルする。
mysql> SELECT * from -> /* 記述途中だとこの印"->"で次の入力を待っている */ -> \c mysql>
helpまたは”\h”:ヘルプの表示(mysql:クライアント用)
ysql> \h; For information about MySQL products and services, visit: http://www.mysql.com/ For developer information, including the MySQL Reference Manual, visit: http://dev.mysql.com/ To buy MySQL Enterprise support, training, or other products, visit: https://shop.mysql.com/ List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear the current input statement. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. resetconnection(\x) Clean session context. query_attributes Sets string parameters (name1 value1 name2 value2 ...) for the next query to pick up. For server side help, type 'help contents'
サーバーサイドのヘルプ一覧
mysql> help contents; You asked for help about help category: "Contents" For more information, type 'help <item>', where <item> is one of the following categories: Account Management Administration Components Compound Statements Contents Data Definition Data Manipulation Data Types Functions Geographic Features Help Metadata Language Structure Loadable Functions Plugins Prepared Statements Replication Statements Storage Engines Table Maintenance Transactions Utility
この項目をhelpの後に繋げたコマンドを打つと、ヘルプの詳細を読める。
mysql> help Data Definition; You asked for help about help category: "Data Definition" For more information, type 'help <item>', where <item> is one of the following topics: ALTER DATABASE ALTER EVENT ALTER FUNCTION ALTER INSTANCE ALTER LOGFILE GROUP ALTER PROCEDURE ALTER SCHEMA ALTER SERVER ALTER TABLE ALTER TABLESPACE ALTER VIEW CREATE DATABASE CREATE EVENT CREATE FUNCTION CREATE INDEX CREATE LOGFILE GROUP CREATE PROCEDURE CREATE SCHEMA CREATE SERVER CREATE SPATIAL REFERENCE SYSTEM CREATE TABLE CREATE TABLESPACE CREATE TRIGGER CREATE VIEW DROP DATABASE DROP EVENT DROP FUNCTION DROP INDEX DROP PROCEDURE DROP SCHEMA DROP SERVER DROP SPATIAL REFERENCE SYSTEM DROP TABLE DROP TABLESPACE DROP TRIGGER DROP VIEW FOREIGN KEY RENAME TABLE TRUNCATE TABLE
今後も分かった事を更新していく。
コメント