■ MySQLとは・・・
MySQLとは世界的に広く利用されているRDBMSで、マルチスレッドをサポートし数千万のレコードを持つデータベースも高速に処理を行えます。
また、CGIやJava・PHPなどの言語よりMySQLに手軽にアクセスが可能です。
■ MySQLのインストール
# yum -y install mysql-server
|
■ MySQLの設定
MySQL設定ファイルの変更
# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
出力メッセージを日本語にする(追加)
注:システムロケールを UTF-8 以外にしてある場合、文字化けする場合があります。
下記は特に追加する必要はありません。(お好みでどうぞ)
language=/usr/share/mysql/japanese/
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
|
■ MySQLの起動
MySQLの起動
【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】
# /etc/rc.d/init.d/mysqld start
OS起動時にMySQLを起動する
# chkconfig mysqld on
【Fedora16以降 の場合】
# systemctl start mysqld.service
OS起動時にMySQLを起動する
# systemctl enable mysqld.service
|
■ MySQLの初期設定
- MySQLを使用するには、mysqld サービスが起動している必要があります。
MySQL monitorに接続
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
インストール直後のデータベース表示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
「mysql」データベースのテーブル名表示
mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.00 sec)
MySQLアカウントのrootが自動的に作成されているがパスワードが設定されていないので設定する。
rootにパスワードを設定する(パスワードを"himitsu"とする場合)
mysql> SET PASSWORD FOR root@localhost=PASSWORD('himitsu');
Query OK, 0 rows affected (0.00 sec)
MySQL monitorの終了
mysql> exit
Bye
MySQL monitorにrootで接続する(この時、"-p"オプションを指定しパスワード入力をする)
# mysql -u root -p
上記で設定したパスワード"himitsu"を入力
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
「use」コマンドで「mysql」データベースに切り替える。
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
データベースが変更された
Database changed
MySQLに接続できるユーザの表示
mysql> select host,user,password from user;
+---------------------+------+-------------------------------------------+
| host | user | password |
+---------------------+------+-------------------------------------------+
| localhost | root | *E66CFAC34A241C069A88922EFA68D1428A99AE945 |
| fedora.kajuhome.com | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| fedora.kajuhome.com | | |
+---------------------+------+-------------------------------------------+
6 rows in set (0.00 sec)
パスワード無しのユーザ(匿名ユーザ)の削除
mysql> delete from user where user="";
Query OK, 2 rows affected (0.00 sec)
MySQLに接続できるユーザの表示
mysql> select host,user,password from user;
+---------------------+------+-------------------------------------------+
| host | user | password |
+---------------------+------+-------------------------------------------+
| localhost | root | *E66CFAC34A241C069A88922EFA68D1428A99AE94 |
| fedora.kajuhome.com | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
+---------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)
パスワード無しのユーザが削除されたホスト「fedora.kajuhome.com」にもパスワードを設定する
mysql> SET PASSWORD FOR root@fedora.kajuhome.com=PASSWORD('himitsu');
Query OK, 0 rows affected (0.00 sec)
MySQLに接続できるユーザの表示
mysql> select host,user,password from user;
+---------------------+------+-------------------------------------------+
| host | user | password |
+---------------------+------+-------------------------------------------+
| localhost | root | *E66CFAC34A241C069A88922EFA68D1428A99AE94 |
| fedora.kajuhome.com | root | *E66CFAC34A241C069A88922EFA68D1428A99AE94 |
| 127.0.0.1 | root | |
| ::1 | root | |
+---------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)
「use」コマンドで「test」データベースに切り替える。
mysql> use test
Database changed
mysql> show tables;
Empty set (0.00 sec)
「test」データベースのテーブル名表示
mysql> show tables;
Empty set (0.00 sec)
テーブルが存在しない(「test」データベースは試験用の為不要)「test」データベースの削除
mysql> drop database test;
Query OK, 0 rows affected (0.01 sec)
データベースの表示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
「test」データベースが削除されたMySQL monitorの終了
mysql> exit
Bye
|
■ データベースを操作してみる
MySQL monitorに接続
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
「meibo」データベースを作成
mysql> create database meibo;
Query OK, 1 row affected (0.00 sec)
データベースの表示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| meibo |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
「meibo」データベースが作成された
「meibo」データベースを操作する"linux"ユーザの作成
mysql> grant all on meibo.* TO linux@localhost identified BY 'himitsu';
Query OK, 0 rows affected (0.00 sec)
設定を反映する
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
作成した"linux"ユーザで操作できるか、ログインし直す
MySQL monitorの終了
mysql> exit
Bye
"linux"ユーザでログイン
# mysql -u linux -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
「meibo」データベースに「user」テーブルを作成
(この時、「Num」と「Name」フィールドを作成する)
mysql> create table meibo.user (
-> Num int NOT NULL primary key auto_increment,
-> Name varchar(32) NOT NULL
-> );
Query OK, 0 rows affected (0.06 sec)
「meibo」データベースの「user」テーブルを表示
mysql> show fields from meibo.user;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| Num | int(11) | NO | PRI | NULL | auto_increment |
| Name | varchar(32) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
「user」テーブルが作成され、指定したフィールドも作成された
レコードの挿入(値を"linux"にする)
mysql> insert into meibo.user values(NULL,"linux");
Query OK, 1 row affected (0.00 sec)
レコードの表示
mysql> select * from meibo.user;
+-----+-------+
| Num | Name |
+-----+-------+
| 1 | linux |
+-----+-------+
1 row in set (0.00 sec)
"linux"のレコードが登録された
レコードの挿入(値を"hogehoge"にする)
mysql> insert into meibo.user values(NULL,"hogehoge");
Query OK, 1 row affected (0.01 sec)
レコードの表示
mysql> select * from meibo.user;
+-----+----------+
| Num | Name |
+-----+----------+
| 1 | linux |
| 2 | hogehoge |
+-----+----------+
2 rows in set (0.00 sec)
"hogehoge"のレコードが登録された
レコードの削除(キー「Num」が2のレコードを削除)
mysql> delete from meibo.user where Num=2;
Query OK, 1 row affected (0.01 sec)
レコードの表示
mysql> select * from meibo.user;
+-----+-------+
| Num | Name |
+-----+-------+
| 1 | linux |
+-----+-------+
1 row in set (0.00 sec)
"hogehoge"のレコードが削除された
再度、レコードの挿入(値を"hogehoge"にする)
mysql> insert into meibo.user values(NULL,"hogehoge");
Query OK, 1 row affected (0.00 sec)
レコードの表示
mysql> select * from meibo.user;
+-----+----------+
| Num | Name |
+-----+----------+
| 1 | linux |
| 3 | hogehoge |
+-----+----------+
2 rows in set (0.00 sec)
"hogehoge"のレコードが登録された
レコードの更新(「Name」が"hogehoge"のレコードを"fedora"に変更)
mysql> update meibo.user set Name="fedora" where Name="hogehoge";
Query OK, 1 row affected (0.00 sec)
一致数(Rows matched): 1 変更: 1 Warnings: 0
レコードの表示
mysql> select * from meibo.user;
+-----+--------+
| Num | Name |
+-----+--------+
| 1 | linux |
| 3 | fedora |
+-----+--------+
2 rows in set (0.00 sec)
"hogehoge"のレコードが"fedora"に変更された
MySQL monitorの終了
mysql> exit
Bye
|
■ こんな時は・・・
サービスを起動した時に以下のメッセージが出力された場合、新しい MySQL 権限テーブルを生成すれば解決できる場合があります。
「mysql-server」起動時のログ
Table 'mysql.host' doesn't exist
|
テーブル生成
# mysql_install_db
|
■ コンテンツ関連
没有评论:
发表评论