2004.1.23

MySQL基礎

MySQL設定

1.mysqlユーザーの作成

MySQLを実行する専用ユーザーを作成します。
MySQLのデータを格納するディレクトリ(/usr/local/var)をmysqlユーザーのディレクトリに設定します。

2.グループmysqlの作成とユーザーmysqlの作成

# groupadd mysql
# adduser -g mysql -d /usr/local/var mysql

3.configure、コンパイルおよびインストール

# ./configure --with-charset=ujis -with-extra-charsets=all --with-mysqld-user=mysql
# make
# make install

4.mysql_install_dbの実行

データベースを初期化し、mysql データベースにuser、db、host、tables_priv、columns_privテーブルを作成

# /usr/local/bin/mysql_install_db --user=mysql
Installing all prepared tables
040129 13:45:28 /usr/local/libexec/mysqld: Shutdown Complete

To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
This is done with:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h boku-server password 'new-password'
See the manual for more instructions.

NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run
the /usr/local/bin/mysql_fix_privilege_tables. Otherwise you will not be
able to use the new GRANT command!

You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/local/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com

初期設定

データを格納するディレクトリのオーナーを変更

# chown -R mysql /usr/local/var
# chgrp -R mysql /usr/local/var

起動スクリプトの準備etc

# cp /home/*****/mysql-*.*.*/support-filesmysql.server /etc/rc.d/init.d/
# chmod 755 /etc/rc.d/init.d/mysql.server
# ln -s /etc/rc.d/init.d/mysql.server /etc/rc.d/rc3.d/S90mysql

テンプレートファイルをコピーします

# cp /home/****/mysql-*.*.*/support-files/my-small.cnf /etc/my.cnf
※MySQLインストール後作成されるディレクトリ、ファイル
/usr/local/libexec/mysqldMySQLサーバ
/usr/local/bin/コマンド類
/usr/local/lib/mysql/ライブラリ
/usr/local/include/mysql/includeファイル
/usr/local/var/データベース保存先

コマンドいろいろ

# /usr/local/bin/mysqlshow -p -u root
Enter password:
+-------------+
|  Databases  |
+-------------+
| Web         |
| mysql       |
| talesweaver |
| toydb       |
+-------------+

# /usr/local/bin/mysqlshow Web -p -u root
Enter password:
Database: Web
+------------+
|   Tables   |
+------------+
| access     |
| access_tw  |
| message_tw |
+------------+

# /usr/local/bin/mysql -e "SELECT date,name,title FROM message_tw" Web -p -u root
Enter password:
+------------------+------------+------------+
| date             | name       | title      |
+------------------+------------+------------+
| 2004/02/27 15:09 | みみぶくろ | 表示テスト |
+------------------+------------+------------+


# /usr/local/bin/mysqladmin -u root password '[PASSWORD]'
# mysql -h boku-server -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19 to server version: 5.0.0-alpha

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| toydb    |
+----------+
2 rows in set (0.00 sec)
mysql> USE toydb
Database changed
mysql> DESCRIBE toydb;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| ID         | int(11)     | YES  |     | NULL    |       |
| 所持       | tinyint(4)  | YES  |     | NULL    |       |
| 品名       | varchar(50) | YES  |     | NULL    |       |
| 在庫       | tinyint(4)  | YES  |     | NULL    |       |
| No         | tinyint(4)  | YES  |     | NULL    |       |
| バージョン | varchar(50) | YES  |     | NULL    |       |
| タイトル   | varchar(50) | YES  |     | NULL    |       |
| シリーズ名 | varchar(50) | YES  |     | NULL    |       |
| 種類       | varchar(50) | YES  |     | NULL    |       |
| 発売元     | varchar(50) | YES  |     | NULL    |       |
| 価格       | smallint(6) | YES  |     | NULL    |       |
| 購入日     | date        | YES  |     | NULL    |       |
| 備考       | longtext    | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
13 rows in set (0.04 sec)

■MySQL 基礎コマンド(SQL)
help;ヘルプを表示します。
create database dbname;dbname という名前のデータベースを作成
drop database dbname;dbname という名前のデータベースを削除
show databases;データベースの一覧を表示
show tables;テーブルの一覧を表示
show tables from dbname;データベースを指定してテーブルを表示
show variables;システム変数を表示
CREATE TABLE toydb (ID int, 所持 TINYINT, 品名 VARCHAR(50), 在庫 TINYINT, No TINYINT, バージョン VARCHAR(50), タイトル VARCHAR(50), シリーズ名 VARCHAR(50), 種類 VARCHAR(50), 発売元 VARCHAR(50), 価格 SMALLINT, 購入日 DATE, 備考 LONGTEXT); mysqlimport -v --fields-terminated-by=',' --fields-enclosed-by='"' --password toydb toydb mysql> select host,user,password from mysql.user; +-------------+------+------------------+ | host | user | password | +-------------+------+------------------+ | localhost | root | 3b73201958d99c7c | | boku-server | root | 3b73201958d99c7c | | boku-server | | | | localhost | | | +-------------+------+------------------+ 4 rows in set (0.29 sec) mysql> delete from mysql.user where user=""; Query OK, 2 rows affected (0.10 sec) mysql> SELECT 品名,シリーズ名,種類 FROM toydb WHERE 品名 LIKE "%ガンダム%" AND 所持 = 0 AND シリーズ名 = "MSセレクション"; +---------------------------+----------------+------------+ | 品名 | シリーズ名 | 種類 | +---------------------------+----------------+------------+ | Xガンダム | MSセレクション | ガシャポン | | ガンダムエアマスター | MSセレクション | ガシャポン | | ガンダムレオパルド | MSセレクション | ガシャポン | | ガンダムヴァサーゴ | MSセレクション | ガシャポン | | ガンダムアシュタロン | MSセレクション | ガシャポン | | RX-78-2ガンダム | MSセレクション | ガシャポン | | GX-9901-DXガンダムXX | MSセレクション | ガシャポン | | RX-79陸戦用ガンダム | MSセレクション | ガシャポン | | RX-78-2ガンダム | MSセレクション | ガシャポン | | XXXG-00W0ウィングガンダム | MSセレクション | ガシャポン | | RX-78-2ガンダム | MSセレクション | ガシャポン | | ∀ガンダム | MSセレクション | ガシャポン | | RX-78NT1 NT専用ガンダム | MSセレクション | ガシャポン | | RX-78-2 ガンダム | MSセレクション | ガシャポン | | RX-178 ガンダムMK-II | MSセレクション | ガシャポン | | ガンダム | MSセレクション | ガシャポン | | Zガンダム | MSセレクション | ガシャポン | | ガンダム試作1号機 | MSセレクション | ガシャポン | +---------------------------+----------------+------------+ 18 rows in set (0.28 sec) mysql> alter table toydb add primary key (ID); Query OK, 8293 rows affected (1.48 sec) Records: 8293 Duplicates: 0 Warnings: 0 mysql> DESCRIBE toydb; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | ID | int(11) | | PRI | 0 | | | 所持 | tinyint(4) | YES | | NULL | | | 品名 | varchar(50) | YES | | NULL | | | 在庫 | tinyint(4) | YES | | NULL | | | No | tinyint(4) | YES | | NULL | | | バージョン | varchar(50) | YES | | NULL | | | タイトル | varchar(50) | YES | | NULL | | | シリーズ名 | varchar(50) | YES | | NULL | | | 種類 | varchar(50) | YES | | NULL | | | 発売元 | varchar(50) | YES | | NULL | | | 価格 | smallint(6) | YES | | NULL | | | 購入日 | date | YES | | NULL | | | 備考 | longtext | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 13 rows in set (0.00 sec) mysql> LOAD DATA INFILE "/root/dbup.20040202" INTO TABLE toydb.toydb FIELDS TERMINATED BY ','; mysql> delete from toydb where id = 8354; Query OK, 1 row affected (0.05 sec) mysql> delete from toydb where id between 8358 and 8410; Query OK, 53 rows affected (0.02 sec) mysql> SELECT * FROM toydb where ID between 8354 and 8410; [root@boku-server toydb]# mysql -h boku-server -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 56 to server version: 5.0.0-alpha Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use toydb Database changed mysql> LOAD DATA INFILE "/home/mimibukuro/toydb/toydb.20040203" INTO TABLE toydb.toydb FIELDS TERMINATED BY ','; Query OK, 57 rows affected (0.03 sec) Records: 57 Deleted: 0 Skipped: 0 Warnings: 81 mysql> SELECT * FROM toydb where ID between 8354 and 8410; +------+------+------------------------------------------+------+------+----------------+----------+-------------------------------------+------+----------+------+------------+------+ | ID | 所持 | 品名 | 在庫 | No | バージョン | タイトル | シリーズ名 | 種類 | 発売元 | 価格 | 購入日 | 備考 | +------+------+------------------------------------------+------+------+----------------+----------+-------------------------------------+------+----------+------+------------+------+ | 8354 | 1 | ゾック | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 2004-01-31 | | | 8355 | 1 | グフカスタム | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 2004-01-31 | | | 8356 | 0 | 高機動型ザク(黒い三連星仕様) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 0000-00-00 | | | 8357 | 1 | ギャン(マ・クベ専用機) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 2004-01-31 | | | 8358 | 0 | ゲルググ(アナベル・ガトー専用) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 0000-00-00 | | | 8359 | 1 | ザクI(ランバ・ラル専用機) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 2004-01-31 | | | 8360 | 0 | リック・ドム(シャア・アズナブル専用機) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 0000-00-00 | | | 8361 | 0 | ゲルググ(シャア・アズナブル専用機) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 0000-00-00 | | | 8362 | 1 | ズゴック(シャア・アズナブル専用機) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 2004-01-31 | | | 8363 | 1 | ザクII(シャア・アズナブル専用機) | 0 | 1 | | | GSIGHT SPEKTRUM | | バンダイ | 0 | 2004-01-31 | | | 8364 | 1 | 零式艦上戦闘機52型 | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8365 | 1 | 九九式艦上爆撃機11型 | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8366 | 1 | 三式戦闘機 飛燕 | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8367 | 0 | グラマン F4F ワイルドキャット | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 0000-00-00 | | | 8368 | 1 | チャンスボート F4U コルセア | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8369 | 1 | フォッケウルフ FW190A | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8370 | 1 | フォッケウルフ FW190A | 0 | 2 | シークレット | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8371 | 1 | ユンカース Ju87B スツーカ | 0 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8372 | 1 | ホーカーハリケーン MkII | 2 | 2 | | | ウィングクラブ コレクション | | バンダイ | 0 | 2004-01-31 | | | 8373 | 0 | 駆け込み乗車 | 0 | 1 | | | サラリーマンヒーローズ ウルトラマン | | バンダイ | 0 | 0000-00-00 | | | 8374 | 0 | 通勤ラッシュ | 0 | 1 | | | サラリーマンヒーローズ ウルトラマン | | バンダイ | 0 | 0000-00-00 | | | 8375 | 0 | 名刺交換 | 0 | 1 | | | サラリーマンヒーローズ ウルトラマン | | バンダイ | 0 | 0000-00-00 | | | 8376 | 0 | 公園のベンチ(昼休み) | 0 | 1 | | | サラリーマンヒーローズ ウルトラマン | | バンダイ | 0 | 0000-00-00 | | | 8377 | 1 | 仕事中? | 0 | 1 | | | サラリーマンヒーローズ ウルトラマン | | バンダイ | 0 | 2004-01-31 | | | 8378 | 0 | 哀愁 | 0 | 1 | | | サラリーマンヒーローズ ウルトラマン | | バンダイ | 0 | 0000-00-00 | | | 8379 | 1 | ウルトラマン | 1 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 2004-01-31 | | | 8380 | 0 | ヒドラ | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8381 | 0 | ジャミラ | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8382 | 0 | シーボーズ | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8383 | 1 | ダダ | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 2004-01-31 | | | 8384 | 0 | ギャンゴ | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8385 | 0 | レッドキング | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8386 | 1 | ガラモン | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 2004-01-31 | | | 8387 | 0 | ドラコ | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 2004-01-31 | | | 8388 | 0 | メトロン星人 | 0 | 1 | 彩色 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8389 | 0 | ウルトラマン | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8390 | 0 | ヒドラ | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8391 | 0 | ジャミラ | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8392 | 0 | シーボーズ | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8393 | 1 | ダダ | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 2004-01-31 | | | 8394 | 1 | ギャンゴ | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 2004-01-31 | | | 8395 | 0 | レッドキング | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8396 | 0 | ガラモン | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8397 | 0 | ドラコ | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8398 | 0 | メトロン星人 | 0 | 1 | 赤 | | キャラトーテムポール ウルトラマン | | ポピー | 0 | 0000-00-00 | | | 8399 | 1 | クロスボーンガンダムX1 | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8400 | 1 | クロスボーンガンダムX2 | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8401 | 1 | シャイニングガンダム | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8402 | 1 | シャイニングガンダム | 0 | 2 | ハイパーモード | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8403 | 1 | サイコガンダムMK-II | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8404 | 1 | サイコガンダムMK-II | 0 | 2 | ネオジオン | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8405 | 1 | ケンプファー | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8406 | 1 | ケンプファー | 0 | 2 | 森林迷彩 | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8407 | 1 | リックディアス | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8408 | 1 | リックディアス | 0 | 2 | 色違い | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8409 | 1 | ジムスナイパーII | 0 | 2 | | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | | 8410 | 1 | ジムスナイパーII | 0 | 2 | 森林迷彩 | | ガンダムヘッド | | バンダイ | 0 | 2004-01-31 | | +------+------+------------------------------------------+------+------+----------------+----------+-------------------------------------+------+----------+------+------------+------+ 57 rows in set (0.01 sec) mysql> SELECT 品名,No,シリーズ名 FROM toydb where シリーズ名 LIKE "%ウィング%"; +-------------------------------+------+-----------------------------+ | 品名 | No | シリーズ名 | +-------------------------------+------+-----------------------------+ | 零式艦上戦闘機21型 | 1 | ウィングクラブ コレクション | | 零式艦上戦闘機22型 | 1 | ウィングクラブ コレクション | | メッサーシュミットBf109E3 | 1 | ウィングクラブ コレクション | | メッサーシュミットBf109E7 | 1 | ウィングクラブ コレクション | | P-40 ウォーホークC | 1 | ウィングクラブ コレクション | | P-40 ウォーホークN | 1 | ウィングクラブ コレクション | | スピットファイヤMk.I | 1 | ウィングクラブ コレクション | | 零式艦上戦闘機21型 | 1 | ウィングクラブ コレクション | | 零式艦上戦闘機22型 | 1 | ウィングクラブ コレクション | | メッサーシュミットBf109E3 | 1 | ウィングクラブ コレクション | | メッサーシュミットBf109E7 | 1 | ウィングクラブ コレクション | | P-40 ウォーホークC | 1 | ウィングクラブ コレクション | | P-40 ウォーホークN | 1 | ウィングクラブ コレクション | | スピットファイヤMk.I | 1 | ウィングクラブ コレクション | | 零式艦上戦闘機52型 | 2 | ウィングクラブ コレクション | | 九九式艦上爆撃機11型 | 2 | ウィングクラブ コレクション | | 三式戦闘機 飛燕 | 2 | ウィングクラブ コレクション | | グラマン F4F ワイルドキャット | 2 | ウィングクラブ コレクション | | チャンスボート F4U コルセア | 2 | ウィングクラブ コレクション | | フォッケウルフ FW190A | 2 | ウィングクラブ コレクション | | フォッケウルフ FW190A | 2 | ウィングクラブ コレクション | | ユンカース Ju87B スツーカ | 2 | ウィングクラブ コレクション | | ホーカーハリケーン MkII | 2 | ウィングクラブ コレクション | +-------------------------------+------+-----------------------------+ 23 rows in set (0.29 sec) mysql> update toydb set 品名 = "ザクII MAZER TOP CANNON" where ID = 15; mysql> update toydb set 種類 = "食玩" where シリーズ名 LIKE "%ウィング%"; Query OK, 9 rows affected (0.40 sec) Rows matched: 23 Changed: 9 Warnings: 0 mysql> SELECT * FROM toydb where 種類 = "" limit 50; mysql> use toydb Database changed mysql> load data infile '/home/mimibukuro/toydb/toydb.up.txt' into table toydb2(所持,品名,バージョン,在庫,No,タイトル,シリーズ名,発売元);