MariaDBを使う際に、自分が良く使うコマンドのメモ書き。
以降のコマンドは、以下の環境をもとに記載している。
Ubuntu 22.04
MariaDB 10.6
MariaDBへのログイン
# OS上のrootユーザーでログイン sudo mariadb # MariaDB内のユーザーでログイン(パスワード認証) mariadb -u test_user -p
MariaDBからログアウト
exit または quit
システム変数
# システム変数の確認 show variables; # 文字コード関係の設定確認 show variables like "chara%"; # データベースごとの文字コードを確認 select SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME from INFORMATION_SCHEMA.SCHEMATA;
データベース操作
# データベース一覧表示 show databases; # データベースを作成 create database test_database; # データベースを削除 drop database test_database; # 使用するデータベースを選択 use test_database;
ユーザー操作
# ユーザー情報一覧表示
select user,host from mysql.user;
# ユーザーを作成
create user 'test_user'@'localhost' identified by 'test_password';
# ユーザーを削除
drop user 'test_user'@'localhost';
# ユーザーの権限を設定
# 指定したデータベースの全テーブルに対してフルコントロール権限
grant all privileges on test_database.* to 'test_user'@'localhost';
flush privileges;
# ユーザーの権限を削除
# 指定したデータベースの全テーブルに設定していたSELECT権限を削除
revoke select on test_database.* from 'test_user'@'localhost';
# ユーザー権限の確認
show grants for 'test_user'@'localhost';
# ユーザーのパスワードを変更
set password for 'test_user'@'localhost' = password('test_password');
テーブル操作
データベースを選択している状態なら、テーブル名の前にあるデータベース名は指定不要。
# テーブル作成 create table test_database.test_table ( id int, name varchar(50), address varchar(50), primary key (id) ); # テーブル名を変更 alter table test_database.test_table rename test_database.new_test_table; # テーブルにカラム追加 # 末尾に「age」カラムを追加 alter table test_database.test_table add age int; # テーブルの特定カラムの後ろにカラム追加 # 「name」カラムの後ろに「age」カラムを追加 alter table test_database.test_table add age int after name; # テーブルのカラムを削除 # 「age」カラムを削除 alter table test_database.test_table drop column age; # テーブルを削除 drop table test_database.test_table; # テーブル内のレコードを切り捨てる truncate test_database.test_table; # テーブル一覧表示 # データベースを選択している状態なら、from以降の指定は不要 show tables; show tables from test_database; # テーブル情報表示 # 末尾に\Gをつけると縦表示(他のコマンドでも使用できる) show table status from test_database; show table status from test_database\G; # テーブルのカラム情報表示 # 以下のコマンドは同じ結果になる show columns from test_database.test_table; show fields from test_database.test_table; describe test_database.test_table; explain test_database.test_table;
