generated at
MySQL

元々はSun Microsystems所有だったが、2010年からOracle所有になった






何個かある
GPLv2のOSS
商用ライセンス


起動、停止
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';
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に対するすべての権限を付与
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' みたいなやつ




使い方概要


Backupとるコマンド




MySQLの謎仕様なんやねんmrsekutmrsekutmrsekutmrsekutmrsekutmrsekut
UPDATE dtb_order SET product_reserve_type_id=2 WHERE id=35; みたいにUPDATEしたいときに、
UPDATE前の状態が既に product_reserve_type_id=2 になっていると、「0行が更新されました」となる
まあこれはゆるそうmrsekut
UPDATE前の状態が product_reserve_type_id=NULL になっていると、上のSQL文では一致しない
一致させるためには、末尾に AND product_reserve_type_id IS NULL を付けないといけない
なぜ??・
これはtableの構造を変更して、本来はproduct_reserve_type_idは0,1,2しかとれないのに、NULLが入っているのが原因かもしれんが、イミフすぎる