MySQL 8 のインストール,テーブル定義,レコード挿入(Ubuntu 上)
MySQL は, オープンソースのリレーショナルデータベース管理システムである. MySQL のインストールとテスト実行を行なう.
【目次】
事前に決めておく事項
- MySQL root ユーザパスワード
MySQL のデータベース管理者は、データベースへのあらゆる操作を許されたユーザである. そのユーザ名は、rootという名前である.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 次のコマンドを実行.
sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now
MySQL のインストール(Ubuntu 20.04 上)
- MySQL および関連ソフトウェア類のインストール
インストールするには, 次のコマンドを実行.
sudo apt -y update sudo apt -y install mysql-client mysql-server libcppdb-odbc0 python3-mysqldb
- 確認のため,MySQL サーバを再起動してみる.
エラーメッセージが出なければ OK.
sudo systemctl restart mysql systemctl status mysql
- MySQL のサービスアカウントの確認
sudo cat /etc/passwd | grep mysql
* 「x」は no password という意味(パスワードがないという意味ではない)
サービスアカウントは Linux が管理するアカウントのこと.MySQL が管理するアカウントとは別のものである.
- データベースディレクトリの確認
/var/lib/mysql になる.
sudo ls -la /var/lib/mysql
- MySQL root ユーザのパスワードの設定,セキュリティ設定
- 「sudo mysql_secure_installation」の実行
sudo mysql_secure_installation
- パスワード検証コンポートネントをインストールする.
「y」, Enter キー
- パスワード検証ポリシーを,0, 1, 2 から選ぶ.
- MySQL root ユーザのパスワードの設定.
HOGE$#34hoge5 のように設定する.
パスワードは,必ず独自に設定してください.
- パスワードの強度が表示されるので確認.
「y」, Enter キー
- 匿名の MySQL ユーザを削除する.
「y」, Enter キー
- MySQL root ユーザでの,リモートからのログインを禁止する.
「y」, Enter キー
- テストデータベースを削除する.
「y」, Enter キー
- いまの設定を,直ちに反映させる.
「y」, Enter キー
- 終了の確認
「y」, Enter キー
- 「sudo mysql_secure_installation」の実行
- MySQL の動作確認
Ubuntu のアカウント root の言言で「mysql」を実行.
「status」により,MySQL root ユーザで使用していること,そして 使用中のデータベースが無いことを確認.
sudo mysql status show databases; exit
MySQL の auth_socket プラグインが使用されている. そのため,Ubuntu の root ユーザは, MySQL の root ユーザにログインしている. このときパスワードが不要であるのは正常動作である.
MySQL のバージョンの確認
mysqladmin -u root -p version

MySQL サーバの起動と終了
MySQL サーバの再起動
sudo systemctl restart mysql
systemctl status mysql

MySQL サーバの終了
sudo systemctl stop mysql
systemctl status mysql

MySQL root ユーザのパスワードの変更
パスワードは,英文字,数字,記号を使う.日本語は使わない.
- MySQL/MariaDB が稼働した状態にする
- 端末で,次のコマンドを実行する.
パスワードを新規に設定する場合は,次のように操作.
mysqladmin --user=root password "(新しいパスワード)"
すでにパスワードを設定済みで,変更をしたい場合は,次のように操作.
mysqladmin --user=root --password=(古いパスワード) password "(新しいパスワード)"
テーブル定義とレコード挿入
- 「sudo mysql -d mysql」により起動.
「root」は MySQL データベース管理者のユーザ名,
「-D mysql」は,使用するデータベースを mysql に設定している.
sudo mysql -D mysql
- SQL を用いたテーブル定義
create table order_records ( id integer primary key not null, year integer not null CHECK ( year > 2008 ), month integer not null CHECK ( month >= 1 AND month <= 12 ), day integer not null CHECK ( day >= 1 AND day <= 31 ), customer_name text not null, product_name text not null, unit_price real not null check ( unit_price > 0 ), qty integer not null default 1 check ( qty > 0 ), created_at timestamp not null default current_timestamp, updated_at timestamp not null default current_timestamp on update current_timestamp, check ( ( unit_price * qty ) < 200000 ) );
- SQL を用いたレコード挿入
start transaction; insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1, 2023, 7, 26, 'kaneko', 'orange A', 1.2, 10 ); insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 2, 2023, 7, 26, 'miyamoto', 'Apple M', 2.5, 2 ); insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 3, 2023, 7, 27, 'kaneko', 'orange B', 1.2, 8 ); insert into order_records (id, year, month, day, customer_name, product_name, unit_price) values( 4, 2023, 7, 28, 'miyamoto', 'Apple L', 3 ); commit;
- 確認表示
select * from order_records;
- 更新し確認表示
start transaction; update order_records set unit_price = 11.2 where id = 1; commit; select * from order_records;
- テーブル一覧の表示
show tables;
- 「\quit」で終了.
exit