MySQL
https://gyazo.com/1a420220b74796f1a089035a5e531eeb
RDBMS
元々はSun Microsystems所有だったが、2010年からOracle所有になった
github
/mrsekut-book-4798147400/016 (第1章 MySQLの概要)
#WIP
MySQLのversionの確認
何個かある
GPLv2のOSS
https://github.com/mysql/mysql-server
商用ライセンス
起動、停止
code:a
$ mysql.server start # 起動
$ mysql.server start --skip-grant-tables # パスワード無しでログイン
$ mysql.server stop # 停止
ログイン(どっちか)
$ mysql -u root
rootでログイン
$ mysql -u mrsekut -p
user指定してログイン
ログアウト
exit
port番号角煮n
show variables like 'port';
code:a
mysql> show databases; #データベース一覧を表示
mysql> use db_name #使用するデータベースを選択(セミコロン不要)
mysql> create database db_name #データベースの作成
mysql> drop database db_name #データベースの削除
権限付与
GRANT ALL ON testDB.* TO 'mrsekut'@'localhost';
testDBに対するすべての権限を付与
code:a
mysql> show tables; #テーブル一覧を表示
mysql> show tables status; #テーブル一覧のステータス情報を表示
mysql> desc table_name; #カラム一覧を表示
mysql> show full columns from table_name; #カラム一覧を表示、Collation付き。
mysql> show index form table_name; #特定テーブルのインデックスを確認
ユーザーの作成ってなんで必要なの #??
権限付与とかの問題か
mysql> create user 'mrsekut'@localhost identified by 'passpass';
mysql> select user, host from mysql.user;
mysql> drop user 'maki'@localhost;
削除
接続文字列
'mysql://johndoe:randompassword@localhost:3306/mydb'みたいなやつ
述語ロック
https://blog.yux3.net/entry/2021/05/15/102916?utm_source=feed
https://qiita.com/fuwamaki/items/194c2a82bd6865f26045
使い方概要
https://qiita.com/E-11/items/a230f6564614eeddef8c
mysqlpump
https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0153
Backupとるコマンド
https://engineering.linecorp.com/ja/interview/mysql-yoku0825/
MYSQL_ROOT_PASSWORD
MYSQL_DATABASE
MYSQL_PASSWORD
my.cnf
MySQLの謎仕様なんやねんmrsekut.icon*6
UPDATE dtb_order SET product_reserve_type_id=2 WHERE id=35;みたいにUPDATEしたいときに、
UPDATE前の状態が既にproduct_reserve_type_id=2になっていると、「0行が更新されました」となる
まあこれはゆるそうmrsekut.icon
UPDATE前の状態がproduct_reserve_type_id=NULLになっていると、上のSQL文では一致しない
一致させるためには、末尾にAND product_reserve_type_id IS NULLを付けないといけない
なぜ??・
これはtableの構造を変更して、本来はproduct_reserve_type_idは0,1,2しかとれないのに、NULLが入っているのが原因かもしれんが、イミフすぎる