MySQL(マイエスキューエル)。高速性と堅牢性を追及したマルチユーザ・マルチスレッドのオープンソースリレーショナルデータベース管理システム(RDBMS)です。世界中で最もよく利用されており、Oracle社が開発を行っています。

オープンソースのデータベース/MySQLとは

MySQL(マイエスキューエル)。高速性と堅牢性を追及したマルチユーザ・マルチスレッドのオープンソースリレーショナルデータベース管理システム(RDBMS)です。世界中で最もよく利用されており、Oracle社が開発を行っています。

MySQL(マイエスキューエル)とは、高速性と堅牢性を追及したマルチユーザ・マルチスレッドのオープンソースリレーショナルデータベース管理システム(RDBMS)です。世界中で最もよく利用されており、Oracle社が開発を行っています。

目次

「MySQL」基本情報
・概要
・主な特徴
・同様製品(概要情報)
・導入事例
・ライセンス情報
・ダウンロード

「MySQL」参考情報 第1回 MySQL入門まとめ(OSSエンジニア入門)
・(1)「MySQL」概要
・(2)「MySQL」のお役立ちサイト
・(3)まとめ

「MySQL」参考情報 第2回 MySQLのコマンド
・(1)MySQLコマンド概要
・(2)MySQLコマンドがよく分かる「お役立ちサイト」
・(3)まとめ

「MySQL」参考情報 第3回 MySQLのバージョン確認
・(1)MySQLバージョン確認方法
・(2)MySQLバージョンアップの歴史
・(3)まとめ

「MySQL」参考情報 第4回 MySQLデータベースの作成と削除
・【1】MySQLデータベース作成(CREATE DATABASE)
・【2】MySQLデータベース削除(DROP DATABASE)
・【3】まとめ

「MySQL」参考情報 第5回 MySQLのデータベース一覧
・【1】データベース一覧表示コマンド
・【2】PHP用サンプルコード例
・【3】まとめ

「MySQL」参考情報 第6回 MySQLのユーザ作成
・【1】ユーザ作成/パスワード設定(CREATE USER)
・【2】権限設定(GRANT)
・【3】ユーザ削除(DROP USER)
・【4】まとめ

「MySQL」参考情報 第7回 MySQLのユーザ一覧
・【1】ユーザ一覧表示
・【2】ユーザ権限表示
・【3】まとめ

「MySQL」参考情報 第8回 MySQLテーブルの作成と削除
・【1】テーブル作成(CREATE TABLE)
・【2】テーブル削除(DROP TABLE)
・【3】まとめ

「MySQL」参考情報 第9回 MySQLテーブル一覧
・【1】テーブル一覧(SHOW TABLES)
・【2】テーブル詳細情報(SHOW TABLE STATUS)
・【3】CREATE TABLE文の取得(SHOW CREATE TABLE)
・【4】まとめ

「MySQL」参考情報 第10回 MySQLのデータ型
・【1】データ型概要
・【2】主なデータ型
・【3】カラムデータ型の変更(ALTER TABLE)
・【4】まとめ

「MySQL」参考情報 第11回 MySQLカラムの追加と削除
・【1】カラム追加(ALTER TABLE ~ ADD)
・【2】カラム削除(ALTER TABLE ~ DROP)
・【3】まとめ

「MySQL」参考情報 第12回 MySQLの文字列結合
・【1】文字列結合
・【2】文字列結合の注意点
・【3】まとめ

「MySQL」参考情報 第13回 MySQLの日付フォーマット
・【1】日付(時刻)フォーマット
・【2】日付(時刻)関数
・【3】まとめ

「MySQL」参考情報 第14回 MySQLのパスワード変更
・【1】パスワード再設定(SET PASSWORD)
・【2】パスワード文字長/使用できる文字
・【3】パスワード設定注意点
・【4】まとめ

「MySQL」参考情報 第15回 MySQLのポート
・【1】「ポート番号」とは
・【2】MySQLのポート
・【3】まとめ

「MySQL」参考情報 第16回 MySQLの再起動
・【1】MySQL再起動/起動/停止方法 Linux
・【2】MySQL再起動/起動/停止方法 Windows
・【3】MySQL再起動/起動/停止方法 Mac
・【4】まとめ

TOPに戻る

「MySQL」基本情報

概要

MySQLは、オープンソースのデータベースとして「高速処理性能」や「安定性」に定評があります。
数多くのバージョンアップが繰り返され、各種機能強化や機能追加が行われ、現在では商用製品と比較しても遜色のないデータベース製品となっています。
マルチユーザー、マルチスレッド、レプリケーション、トランザクション管理など高度な機能が実装されています。
多くのプラットフォームに対応し、JavaやPHPのようなプログラム言語からも簡単にアクセスが可能です。
特に、WEBサービスに対して威力を発揮できる点が、注目を集め利用され続けてきている理由となっています。

【圧倒的シェア】
MySQLの世界での市場シェアは、PostgreSQLなどの他のオープンソースデータベースを圧倒しています。日本市場では、MySQLの文字コードサポートが不十分だったという問題などもあり、当初は伸び悩みましたが、文字コード問題も解消され、近年ではPostgreSQLに匹敵し、上回ってくるまでにシェアを広げています。

【デュアルライセンスモデル】
MySQLはオープンソースですが、オラクル社によって開発やソースコード管理が行われています。
MySQLは有償版(「MySQL Standard Edition」など)と、無償版「MySQL Community Server」の2種類が提供されています。

主な特徴

【高機能性】
MySQLは、高速ロードユーティリティ、各種オプティマイザ、メモリキャッシュ機構、全文インデックス、その他のパフォーマンス強化機能など、高速トランザクション処理を実現するアークテクチャを実装しています。
また、1日あたり10億件ものクエリを処理するような大規模Webサイトなどでの過酷なパフォーマンス要件に対しても対応できる可用性を保持しています。

【堅牢なデータ保護機能】
MySQLは、ユーザ認証、アクセス権限、パスワード管理機能、接続安全性を保証するSSHやSSLでの接続、データ暗号化・復号化機能など、データを確実に防衛するための卓越したセキュリティ機能を備えています。

【管理の容易性】
MySQLは、インストールと設定が15分で完了して速やかに導入できるとされています。
インストール完了後は、自動スペース拡張機能、自動再起動機能、動的設定変更機能などの自己管理機能が、データベース管理者の負担を軽減します。
また、グラフィカル管理ツールと移行ツールが多数用意されています。データベース管理者は、1台の端末から、複数のMySQLサーバの監視、管理、トラブルシューティングなどを行えます。
そして、サードパーティソフトウェアベンダも、データ設計、ETL処理、ジョブ管理、パフォーマンス監視など、MySQL向けの多彩なツール群を提供しています。

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

商用製品:「Oracle Database」、Microsoft「SQL Server」など。

オープンソース製品:「PostgreSQL」など。

導入事例

MySQLは、レンタルサーバのデータベースとしてよく利用されています。また、Google、Facebook、YouTube、Yahooのような世界的Webサービス企業にも多くの導入実績があります。

ライセンス情報

ライセンスMySQL無償版「MySQL Community Server」のライセンスは、「GNU General Public License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
MySQL有償版は、コマーシャルライセンスです。

ダウンロード

ダウンロードページ

TOPに戻る

「MySQL」参考情報 第1回 MySQL入門まとめ(OSSエンジニア入門)

(1)「MySQL」概要

MySQLの概要や特徴について紹介します。

「MySQL」とは

「MySQL」(マイエスキューエル)とは、高速性と堅牢性を追及したマルチユーザ・マルチスレッドのオープンソースリレーショナルデータベース管理システム(RDBMS)です。世界中で最もよく利用されており、Oracle社が開発を行っています。

圧倒的シェア

世界でのMySQL市場シェアは、PostgreSQLなどの他のオープンソースデータベースを圧倒しています。

Google、Facebook、YouTube、Yahooのような世界的Webサービス企業にも多くの導入実績があります。

オープンソースのリレーショナルデータベースといえば、まず、「MySQL」の名前が挙げられる存在となっています。

高機能性

MySQLは、高速ロードユーティリティ、各種オプティマイザ、メモリキャッシュ機構、全文インデックス、パフォーマンス強化機能など、高速トランザクション処理を実現するアークテクチャを実装しています。

可用性

大規模Webサイトなどでの過酷なパフォーマンス要件に対しても十分に対応できる可用性を保持しています。

データ保護機能

ユーザ認証、アクセス権限管理、パスワード管理、SSH/SSL、データ暗号化/復号化機能など、データを保護するための各種セキュリティ機能を備えています。

管理者負担を軽減する各種サポート機能

MySQLは、インストールと設定が15分で完了して速やかに導入できるとされており、セットアップに関しても、ユーザフレンドリーになっています。

稼働開始後は、自動スペース拡張機能、自動再起動機能、動的設定変更機能などの各種管理機能により、データベース管理者の負担を軽減します。

グラフィカル管理ツールや移行ツールが多数用意されています。

(2)「MySQL」のお役立ちサイト

これから「MySQL」に取り組もうとしているOSSエンジニア初心者のみなさんが、参照しておくべき「お役立ちサイト」を紹介します。

お役立ちサイト1「MySQL+Apache+PHPをインストールしよう」

Webアプリケーション開発を習得していこうとしている方、本格的なプログラミング経験の少ない方などを対象としています。環境整備、環境設定、サンプルWebアプリケーション作成を通じて、MySQL(+Apache+PHP)について、実践的に学んでいくことができる連載です。
→@IT →Linux&OSS →今から始める MySQL入門(1):MySQL+Apache+PHPをインストールしよう

お役立ちサイト2「MySQL初心者入門講座」

MySQLのダウンロード、インストール、起動と停止、状態の確認方法など、基本的なセットアップのところからスクリーンショットを多用して丁寧に解説されています。
データベース作成、テーブル作成、ユーザ作成、権限付与、レコード追加/更新、テーブル結合、バックアップ/復元、Accessからの接続など、各項目ごとに、分かりやすくまとめられています。
→MySQL初心者入門講座

(3)まとめ

「MySQL」は、オープンソースリレーショナルデータベースのスタンダードとして非常に高い完成度を誇ります。加えて、シンプルで扱いやすく工夫されているため、データベース自体にまったく触れたことがない初心者の方にも、安心してオススメできる製品です。

「本当に簡単に使えるのか?」について体感しながら、まず、MySQLのダウンロード/インストールから始めて、「(とりあえずの)データベース管理者」の仲間入りをしてしまいましょう。

TOPに戻る

「MySQL」参考情報 第2回 MySQLのコマンド

(1)MySQLコマンド概要

MySQLコマンドとは

「MySQLコマンド」は、データベース作成/テーブル作成/レコード登録/レコード検索などの処理内容を「MySQLデータベース」に対して伝達するための手段です。

MySQLサーバへの接続(MySQLプロンプトの起動)

MySQLをインストールすると、「test」という空のデータベースがデフォルトで用意されます。この「test」データベースに接続します。

MySQLデータベースを起動後、コンソールで「mysql test」と打ち込むと、「test」データベースに接続されます。

接続成功のメッセージが表示され、プロンプトが「mysql>」となります。MySQLデータベースに対して、さまざまな処理命令(コマンド)を出せます。

コマンド文の終了は「;」(セミコロン)

コマンドを使う場合、コマンドの終了には「;」(セミコロン)が必要です。コマンドの途中で改行しても、「;」(セミコロン)が入力されるまで、処理コマンド文が続いていると判断されます。

mysql> show tables;

mysql> show tables
;

補完機能

MySQLプロンプトでは、ヒストリ機能や補完機能を使用できます。

[↑]キーを押すと、以前に入力したコマンドが表示されます。

「sele」と入力して、[Tab]キーを押すと、「select」と補完されます。続けて、[Tab]キーを押すと、入力可能なコマンドやテーブル名が表示されます。

MySQLプロンプトの終了

「mysql> quit;」と入力すると、MySQLプロンプトが終了します。また、[Ctrl]+[D]でも終了します。

(2)MySQLコマンドがよく分かる「お役立ちサイト」

お役立ちサイト1「MySQLでいこう!」

MySQLサーバへの接続、データベース管理関連(データベース作成、データベース削除)、テーブル管理関連(テーブル作成、テーブル削除)、「TRUNCATE TABLE」などの基本的なコマンドについてまとめられています。
→MySQLでいこう!

お役立ちサイト2「ドットインストール」

「ドットインストール」は動画学習サイトです。その中での、MySQLについての学習コンテンツです。「#01 MySQLとは何か?」、「#02 データベース用語について」、「#03 データベースを操作してみよう」などの項目テーマを、動画で解説してくれます。※基本無料で使用できます。
→ドットインストール →MySQL入門 (全19回)

お役立ちサイト3「MySQL 逆引きリファレンス」

「MySQL サーバが起動中であるかを確認する」、「コマンドラインから MySQL 接続時にポート番号を指定する」、「SQL 問い合わせ結果を XML 形式で表示する」、「プロセスを強制的に停止する(mysqladmin)」などの逆引きリファレンスになっています。
→MySQL 逆引きリファレンス

(3)まとめ

MySQLプロンプトから打ち込むMySQLコマンドは、MySQLデータベースを操作するための基本的手段です。いろいろなコマンドでデータベースを管理できるようになってしまいましょう。

TOPに戻る

「MySQL」参考情報 第3回 MySQLのバージョン確認

(1)MySQLバージョン確認方法

MySQLのバージョン情報を確認する手段としては、いろいろな方法があります。

MySQL接続前

1)mysqlコマンドで確認
 『mysql --version』or『mysql -V』

2)mysqladminコマンドで確認
 『mysqladmin version』

MySQL接続時

MySQL接続時に表示されるウェルカムメッセージの中に、バージョン情報が表示されます。

MySQL接続後

1)STATUSコマンドで確認
 『STATUS』

2)version関数で確認
 『SELECT VERSION();』

3)「SHOW VARIABLES」で確認
 『SHOW VARIABLES LIKE 'version%';』

(2)MySQLバージョンアップの歴史

MySQLの誕生から現在までの、「主要なバージョンアップ」と「変遷」について紹介します。

黎明期

1995年05月 MySQL誕生

1998年01月 最初のWindows版リリース

2001年01月 Version 3.23 プロダクションリリース

2003年03月 Version 4.0 プロダクションリリース
  「union」搭載

2004年10月 Version 4.1 プロダクションリリース
  「R木」「B木」「サブクエリ」「prepared statements」搭載

2005年10月 Version 5.0 プロダクションリリース
  「cursors」「stored procedures」「triggers」「views」「XA transactions」搭載。

SunMicrosystems期

2008年02月 SunMicrosystemsが「MySQL AB」を買収

2008年07月 SunMicrosystemsが「MySQL株式会社」(MySQL日本法人)を吸収合併

2008年11月 Version 5.1 プロダクションリリース
  「event scheduler」「partitioning」「plugin API」「row-based replication」「server log tables」搭載

Oracle期

2010年06月 日本オラクル株式会社がSunMicrosystems株式会社を統合

2010年12月 Version 5.5 プロダクションリリース
  デフォルトストレージエンジンが「InnoDB」に変更、マルチコアCPUパフォーマンスUP

2013年02月 Version 5.6 プロダクションリリース
  「InnoDB」機能強化、「NoSQL」機能強化

2015年10月 Version 5.7 プロダクションリリース

参考サイト「MySQL 開発と変遷の歴史」

MySQLの開発と変遷の歴史についてまとめられています。技術的なバージョンアップについての話や、Oracle買収時のコミュニティ内の動揺など、興味深いMySQLの歴史を垣間見れます。
→gihyo.jp →DEVELOPER STAGE →連載 →MySQLをチューニング,そしてスケールアップ/スケールアウトへ →第1回 MySQLにおける開発の歴史と最新動向

(3)まとめ

MySQLは、1995年に誕生し、買収などいろいろありながらも、バージョンアップを繰り返してきた結果、商用DBに匹敵するほどの完成度にまで高まってきました。

今後、どのようなバージョンアップがなされ、どのような新機能が搭載され、どのようなデータベースになっていってくれるのか、楽しみな点です。

TOPに戻る

「MySQL」参考情報 第4回 MySQLデータベースの作成と削除

【1】MySQLデータベース作成(CREATE DATABASE)

MySQLの中に複数のデータベースを作成できます。サンプルとして、刀剣情報を管理するための「ToukenDB」データベース作成を行います。

(1)MySQL起動&接続

1.コマンドプロンプト(コンソール)を起動

2.『net start mysql』→Enterキー

3.『mysql -u root -p』→Enterキー

4.パスワード入力→Enterキー

(2)既存データベース確認

『SHOW DATABASES;』→Enterキー

※既存データベースが表示されます。初期状態であれば、「information_schema」「mysql」「test」の3つのデータベースが表示されるはずです。

※「information_schema」と「mysql」データベースは、MySQLが使用するデータベースです。「test」は、デフォルトで作成されるテスト用データベースです。

(3)データベース作成

『CREATE DATABASE ToukenDB;』→Enterキー

※作成完了メッセージが表示されます。

※データベース名は64バイト以内で設定する必要があります。

※すでに存在しているデータベースと同名のデータベースを作成しようとすると、エラーメッセージが表示されます。

(4)作成確認

『SHOW DATABASES;』→Enterキー

※存在しているデータベースとして、「ToukenDB」が表示されます。

【2】MySQLデータベース削除(DROP DATABASE)

削除用サンプルデータベース「SampleDB」を作成して、データベース削除を行います。

(1)MySQL起動&接続

1.コマンドプロンプト(コンソール)を起動

2.『net start mysql』→Enterキー

3.『mysql -u root -p』→Enterキー

4.パスワード入力→Enterキー

(2)削除用サンプルデータベース作成

『CREATE DATABASE SampleDB;』→Enterキー

※作成完了メッセージが表示されます。

(3)既存データベース確認

『SHOW DATABASES;』→Enterキー

※既存データベースが表示されます。MySQL用データベース(「information_schema」、「mysql」、「test」)+「ToukenDB」+「SampleDB」が表示されるはずです。

(4)データベース削除

『DROP DATABASE SampleDB;』→Enterキー

※「SampleDB」が削除されます。

(5)削除確認

『SHOW DATABASES;』→Enterキー

※「SampleDB」が削除されていることを確認します。

データベース削除に関する注意点

MySQLのデフォルトの仕組みとして、「データベース削除の取り消し」機能はありません。

つい、うっかり、データベースを削除してしまった場合、中のデータを復活させることはできません。

作業開始前にバックアップを必ず取るようにして、そのような事態に備えることが必要です。

【3】まとめ

MySQLでの、データベース作成/削除は、1コマンドで簡単に行なえてしまいます。

データベースを扱う際には、うっかりミスが必ず起きてしまうことを前提にして、入念なバックアップなど、慎重な作業が必要となります。

TOPに戻る

「MySQL」参考情報 第5回 MySQLのデータベース一覧

【1】データベース一覧表示コマンド

MySQLのデータベース一覧を表示する方法として、いくつかの方法があります。

【コンソール】「mysqlshow」コマンド

コンソール(コマンドプロンプト)から、データベース一覧を表示します。
1.『C:¥mysql¥bin> mysqlshow -u root -p』→Enterキー
2.「Enter password:」と表示されるので、パスワードを入力します。→Enterキー

【MySQLプロンプト】「SHOW DATABASES」コマンド

MySQLプロンプトから、データベース一覧を表示します。
1.『mysql>SHOW DATABASES;』→Enterキー

ワイルドカードを使用して検索表示できます。
1.『mysql>SHOW DATABASES LIKE 'Touken%';』→Enterキー
※「Touken」で始まるデータベース(「ToukenDB」、「ToukenDB_temp」、「ToukenDB_backup」など)のみが表示されます。

【2】PHP用サンプルコード例

MySQLのデータベース一覧を取得するためのPHPサンプルコードを紹介します。

「mysql_query」関数を使用するサンプルコード

$result = mysql_query("show databases");
while($loop = mysql_fetch_assoc($result)){
  echo $loop['Database'];
}

「mysql_query」関数を使用して、「show databases」コマンドを発行して、取得したデータを1件ずつループフェッチして表示します。

「mysql_db_name」関数を使用するサンプルコード

$dbc=mysql_connect("localhost","root","");
$db_list=mysql_list_dbs($dbc);

$i=0;
$db_list_max=mysql_num_rows($db_list);
while ($i<$db_list_max){
  echo mysql_db_name($db_list,$i)."
¥n";
  $i++;
}

「mysql_fetch_object」関数を使用するサンプルコード

$dbc=mysql_connect("localhost","root","");
$db_list=mysql_list_dbs($dbc);

$db_list=mysql_list_dbs($dbc);
while($dat=mysql_fetch_object($db_list)){
  echo $dat->Database."
¥n";
}

【3】まとめ

MySQLのデータベース一覧を取得する方法として、「コンソールからコマンドで取得」、「MySQLプロンプトからコマンドで取得」、「PHPから関数を使用して取得」などの手段があります。

今回は、PHPのサンプルコードを紹介しましたが、もちろん、他のプログラミング言語からでも、データベース一覧を取得することができます。

TOPに戻る

「MySQL」参考情報 第6回 MySQLのユーザ作成

【1】ユーザ作成/パスワード設定(CREATE USER)

MySQLをセットアップした直後は、「root」ユーザしか存在しません。「root」ユーザは、全権限を保持しているため、そのままDB操作を行いミスなどがあると、思わぬ事態になってしまうことがあります。

そのため、必要な操作権限のみを持つユーザを作成して、普段の作業は、そのユーザで行うようにするべきです。

ユーザ作成

ユーザを作成するためには、MySQLプロンプトで「CREATE USER」コマンドを使用します。

サンプルとして、ユーザ「Okita_Souji(沖田総司)」を作成します。

「CREATE USER」文サンプル

CREATE USER 'Okita_Souji'@'Shinsen_gumi' IDENTIFIED BY 'gintama';

ユーザ名@ドメイン名

『'Okita_Souji'@'Shinsen_gumi'』は、「ユーザ名+@+ドメイン名」を表します。

ドメイン名とは、そのユーザが所属するホスト名(サーバ名)のことです。

このサンプルでは、「Shinsen_gumi(新選組)」ドメインに所属する「Okita_Souji(沖田総司)」という意味になります。

該当するドメインでなければ、ログインできません。

※通常は、ドメイン名に「localhost」を設定します。

パスワード設定

『IDENTIFIED BY 'gintama'』の部分でパスワードを指定します。

ユーザ「Okita_Souji」のパスワードを「gintama(銀魂)」に設定します。

【2】権限設定(GRANT)

権限が何もないユーザは、何もできません。

作成したユーザ「Okita_Souji」に、「GRANT」コマンドで権限を付与します。

「GRANT」構文

GRANT 権限 ON レベル TO user;

権限

権限は「どのようなことができるか」という設定です。

「SELECT」、「INSERT」、「UPDATE」、「DELETE」など、多くの種類があります。

レベル

レベルは「どの範囲でできるのか」という設定です。

5つのレベルがあります
1.グローバルレベル(G)
  すべてのデータベース
2.データベース レベル(D)
  特定データベース内のすべてのオブジェクト
3.テーブルレベル(T)
  特定テーブル内のすべてのカラム
4.カラムレベル(C)
  特定テーブルの特定カラム
5.ルーチンレベル
  ストアドルーチン

参考サイト

「権限とレベル」について、詳細にまとめられているサイトです。
→DBOnline →MySQLの使い方 →ユーザーの作成 →権限の種類と設定されている権限の確認

「GRANT」サンプル文

GRANT CREATE,DROP,SELECT,INSERT,UPDATE,DELETE ON ToukenDB TO 'Okita_Souji'@'Shinsen_gumi';

「Shinsen_gumi(新選組)」ドメインに所属するユーザ「Okita_Souji(沖田総司)」に、「ToukenDB(刀剣DB)」データベースに対する「CREATE,DROP,SELECT,INSERT,UPDATE,DELETE」権限を付与しています。

【3】ユーザ削除(DROP USER)

「DROP USER」構文

DROP USER 'user'@'localhost';

【4】まとめ

今回は、おもに、「ユーザ作成」と「権限付与」について紹介しました。

権限の種類はたくさんありますが、とりあえず、使いそうな権限だけ付与しておいて、不足したら追加するという形でもOKです。

TOPに戻る

「MySQL」参考情報 第7回 MySQLのユーザ一覧

【1】ユーザ一覧表示

ユーザは「mysql」データベースの「user」テーブルで管理されています。

このテーブルをSELECTすることでユーザ一覧を参照できます。「user」テーブルに対する「SELECT」権限を持つユーザのみが参照可能です。

参照方法

『mysql> select Host, User, Password from mysql.user;』
  ↓

HostUserPassword
localhostroot*********
Shinsen_gumiOkita_Souji*********
localhost

匿名ユーザ

上記サンプル出力3行目のように、「ユーザ名」が空、「パスワード」設定なし、のようなユーザが存在している場合があります。

MySQLサーバに接続する際には、ユーザ名とパスワードが必要になりますが、MySQLインストール時にデフォルトで「匿名ユーザ」が作成されています。

この「匿名ユーザ」のパスワードは未設定であるため、誰でもログインできてしまう状態になっています。そのため、匿名ユーザのパスワードを設定するか、もしくは、匿名ユーザを削除しておくことが推奨されています。

【2】ユーザ権限表示

ユーザ権限を表示する方法として「SHOW GRANTS」コマンドを使用します。

構文

SHOW GRANTS FOR ユーザ名@ホスト名;

参照方法(1) 「SHOW GRANTS」ユーザ指定

『mysql> SHOW GRANTS FOR Okita_Souji@Shinsen_gumi;』

指定したユーザに対して付与されている権限が GRANTステートメントの形で表示されます。

参照方法(2) 「SHOW GRANTS」接続ユーザ

『mysql> SHOW GRANTS;』

ユーザ名を省略すると、現在接続しているユーザの権限が表示されます。

参照方法(3) SELECT文サンプル

「mysql」データベースの「db」テーブルに対するSELECT文を発行することでも、権限情報を参照できます。

『mysql> SELECT * FROM mysql.db WHERE user = 'Okita_Souji' AND host = 'Shinsen_gumi' AND db = 'ToukenDB' ¥G;』

※SQL文の最後に、メタコマンドである「¥G」オプションを付けると、問い合わせ結果が縦に表示され、見やすくできます。

【3】まとめ

ユーザ一覧を確認したり、各ユーザの権限を確認しておくことは、セキュリティ確保という面においても重要なポイントです。

「root」ユーザのパスワード設定や、匿名ユーザ(パスワードなし)の存在などは、特に、MySQLインストール直後に対処しておくことが推奨されています。

TOPに戻る

「MySQL」参考情報 第8回 MySQLテーブルの作成と削除

【1】テーブル作成(CREATE TABLE)

「CREATE TABLE」構文

CREATE TABLE テーブル名 (
  カラム名 データ型 (オプション),
  カラム名 データ型 (オプション),
  カラム名 データ型 (オプション)
);

※「テーブル名」と「カラム名」は64バイト以内

サンプルテーブル1(刀剣テーブル)

刀剣情報を格納するテーブルを作成します。

CREATE TABLE Touken (
  #刀剣ID(NULL禁止、ID自動設定)
  id INT(11) NOT NULL AUTO_INCREMENT,
  #刀剣名
  name VARCHAR(64),
  #武将ID 刀剣の持ち主
  busho_id INT(11),
  #「PRIMARY KEY」を「id」に指定
  PRIMARY KEY (id)
);

サンプルテーブル2(武将テーブル)

武将情報を格納するテーブルを作成します。

CREATE TABLE Busho (
  #武将ID(NULL禁止、ID自動設定)
  id INT(11) NOT NULL AUTO_INCREMENT,
  #武将名
  name VARCHAR(64),
  #「PRIMARY KEY」を「id」に指定
  PRIMARY KEY (id)
);

「NOT NULL」オプション

「id」カラムに「NOT NULL」オプションを指定してあります。

対象テーブルにレコードが追加される際に、「id」カラムが空(null)であることを禁止します。

「AUTO_INCREMENT」オプション

「id」カラムに「AUTO_INCREMENT」オプションを指定してあります。

対象テーブルにレコードが追加される際に、「id」カラムにセットされるデータが空(null)であった場合に、最初に「1」をセットします。

以降は、レコードが追加されるたびに、自動で、「前回追加した値+1」の値がセットされます。

わざわざ「id」値を指定しなくても、自動で、「1,2,3,・・・」とセットしてくれます。

「PRIMARY KEY」

「PRIMARY KEY (id)」とすることで、「id」カラムを「PRIMARY KEY」に設定しています。

「PRIMARY KEY」とは、そのカラム(もしくは、複数カラムの組合せ)で、一意となる(唯一のレコードであることが決定される)ものをいいます。別名「主キー」ともいわれます。

つまり、「idカラムに格納されている値は、全レコード違う値である」ことを強制する設定です。

「PRIMARY KEY」に対しては、自動でインデックスが作成されます。このサンプルの場合(大量のデータがある場合)、「id」カラムを抽出条件とした検索が速くなります。

【2】テーブル削除(DROP TABLE)

「DROP TABLE」構文

DROP TABLE テーブル名;

注意点

バックアップを取っておけば復元することもできますが、間違えてテーブルを削除してしまわないように、気をつけましょう。

【3】まとめ

今回は、「テーブル作成」をメインとして、「テーブル削除」も紹介しました。

やみくもにテーブルを作ればよいというのではなく、テーブル作成の前に、テーブル間でつじつまが合わなくならないように、テーブル設計をしておくことが推奨されます。

TOPに戻る

「MySQL」参考情報 第9回 MySQLテーブル一覧

【1】テーブル一覧(SHOW TABLES)

テーブル一覧を取得する方法です。

SHOW TABLES [FROM データベース名][LIKE パターン]

『mysql> SHOW TABLES』
  ↓
カレントデータベースに存在するテーブル名(「Touken」「Busho」など)が表示されます。

※指定したデータベースに、テーブルが1つも存在しない場合は、「Empty set」と表示されます。

※指定したデータベースが存在しない場合は、エラーメッセージが返されます。

データベース指定

『mysql> SHOW TABLES from ToukenDB』

  ↓

「ToukenDB」に存在するテーブル一覧を表示します。カレントデータベースではないデータベースのテーブル一覧を取得する場合に指定します。

LIKE パターン

LIKE句を使用して、ワイルドカード抽出することもできます。

『mysql> SHOW TABLES LIKE 'Tou%'』
  ↓
「Tou」で始まるテーブルのみを表示します。

【2】テーブル詳細情報(SHOW TABLE STATUS)

テーブル名のみではなく、各テーブルに対する詳細情報を取得できます。

SHOW TABLE STATUS [FROM データベース名] [LIKE パターン]

『mysql> SHOW TABLE STATUS¥G』

※「¥G」を付けると、1行ごとに改行され、見やすくできます。

取得できる情報

項目名意味
Nameテーブル名
Typeテーブル種類
Row_formatレコード保存形式(Fixed、Dynamic、Compressed)
Rowsレコード数
Avg_row_lengthレコード平均長
Data_lengthデータファイルの大きさ
Max_data_lengthデータファイルの最大値
Index_lengthインデックスファイルの大きさ
Data_free割り当て済みの中で使用されていないバイト数
Auto_incrementautoincrement値(次にセットされる値)
Create_timeテーブル作成日時
Update_time最終更新日時
Check_time最終チェック日時
Create_options「CREATE TABLE」発行時に使用された拡張オプション
Commentテーブル作成時につけられたコメント

【3】CREATE TABLE文の取得(SHOW CREATE TABLE)

対象のテーブルを作成するための「CREATE TABLE」文を取得できます。

SHOW CREATE TABLE テーブル名

『mysql> SHOW CREATE TABLE Touken』
  ↓
「刀剣(Touken)」テーブルを作成するための「CREATE TABLE」文が表示されます。

【4】まとめ

今回は、テーブル一覧関連について紹介しました。

1行ごとに改行する「¥G」オプション、ワイルドカードで抽出できる「LIKE句」などは、テーブル一覧関連だけではなく、いろいろな場面で使える便利な機能になっています。

TOPに戻る

「MySQL」参考情報 第10回 MySQLのデータ型

【1】データ型概要

データ型とは

テーブル定義の際に、各カラムにデータ型を設定する必要があります。

サンプル:「刀剣情報」テーブル定義

CREATE TABLE Touken (
  #刀剣ID(NULL禁止、ID自動設定)
  id INT(11) NOT NULL AUTO_INCREMENT,
  #刀剣名
  name VARCHAR(64),
  #武将ID 刀剣の持ち主
  busho_id INT(11),
  #「PRIMARY KEY」を「id」に指定
  PRIMARY KEY (id)
);

「INT(11)」、「VARCHAR(64)」の部分でデータ型を設定しています。

テーブルカラムのデータ型確認(DESC)

既存テーブルカラムのデータ型を確認するためには、「DESC」コマンドを使用します。

『mysql> desc Touken』
  ↓

FieldTypeNull
idINT(11)NO
nameVARCHAR(64)YES
busho_idINT(11)YES

【2】主なデータ型

数値型

数値を格納するための型です。格納できる数値の大きさにより、多くの型種類があります。

データ型最小値最大値
TYNYINT-128127
INT-21474836482147483647
BIGINT-92233720368547758089223372036854775807

文字型

文字を入力するための型です。主に3種類あります。

データ型最大文字数
CHAR255
VARCHAR255
TEXT65535

「CHAR」と「VARCHAR」の違い
CHAR(5)のカラムに文字列「ABC」を格納した場合
 →固定長「ABC△△」 ※△=半角スペース
VARCHAR(5)のカラムに文字列「ABC」を格納した場合
 →可変長「ABC」

日付/時刻型

文字を入力するための型です。主に3種類あります。

データ型内容
DATETIME日付と時刻
DATE日付
TIME時刻

お役立ちサイト

MySQLのデータ型には、多くの種類があります。こちらのサイトでは、各データ型の特徴などについて、簡潔に分かりやすくまとめられています。
→usklog →MySQL →【MySQL】データ型一覧

【3】カラムデータ型の変更(ALTER TABLE)

すでに存在しているテーブルカラムのデータ型を変更できます。

構文

ALTER TABLE テーブル名 MODIFY カラム名 データ型

サンプル

『mysql> ALTER TABLE Touken MODIFY name VARCHAR(100)』

刀剣テーブル(Touken) の 刀剣名(name)カラム のデータ型が、「VARCHAR(64)」から「VARCHAR(100)」へ変更されます。

注意点

もし、「VARCHAR(64)」から「VARCHAR(5)」へ変更した場合、全レコードの5文字以降の部分は、カットされて消失してしまいます。

対象テーブル内にレコードデータが格納されている状態で、カラムデータ型の変更を行うと、予期せぬことが起こる場合が多々あります。変更する場合には、入念な事前調査が必要です。基本的に、レコードデータ格納後にカラムデータ型を変更するのは、なるべく避けるべきこととされています。

大きなシステムになると、後からデータ型を変更するのは、非常に多くの手間がかかることになります。そのような手間がなるべく発生しないように、最初のテーブル設計時に、「ある程度若干の余裕を持たせておく」「将来拡張用のカラムを持たせておく」などのことが行われることもあります。

【4】まとめ

今回は、MySQLのデータ型について紹介しました。今回紹介した基本的なデータ型で、とりあえずは、まかなえてしまうこともありますが、便利なデータ型を知っておくと、より便利に使えるかもしれません。

TOPに戻る

「MySQL」参考情報 第11回 MySQLカラムの追加と削除

【1】カラム追加(ALTER TABLE ~ ADD)

既存のテーブルに対してカラムを追加する場合は、「ALTER TABLE(ADD)」コマンドを使用します。

構文

ALTER TABLE テーブル名 ADD カラム名 型 [FIRST/AFTER カラム名]

サンプルテーブル

CREATE TABLE Touken (
  #刀剣ID(NULL禁止、ID自動設定)
  id INT(11) NOT NULL AUTO_INCREMENT,
  #刀剣名
  name VARCHAR(64),
  #武将ID 刀剣の持ち主
  busho_id INT(11),
  #「PRIMARY KEY」を「id」に指定
  PRIMARY KEY (id)
);

カラム追加例(1) オプションなし

『mysql> ALTER TABLE Touken ADD create_datetime DATETIME;』
「Touken」テーブルの一番最後に、「datetime」型の「create_datetime(作成日時)」カラムが追加されます。

  ↓

1.id
2.name
3.busho_id
4.create_datetime

カラム追加例(2) 「FIRST」オプション

『mysql> ALTER TABLE Touken ADD create_datetime DATETIME FIRST;』
「FIRST」オプションを付けると、「Touken」テーブルの一番最初にカラムが追加されます。

  ↓

1.create_datetime
2.id
3.name
4.busho_id

カラム追加例(3) 「AFTER」オプション

『mysql> ALTER TABLE Touken ADD create_datetime DATETIME AFTER name;』
「AFTER」オプションを付けると、「Touken」テーブルの指定したカラム(name)の次にカラムが追加されます。

  ↓

1.id
2.name
3.create_datetime
4.busho_id

カラム追加例(4) 複数カラム追加

構文
ALTER TABLE テーブル名 ADD (カラム名 型, カラム名 型, カラム名 型, ...)

『mysql> ALTER TABLE Touken ADD (test1 INT, test2 INT, test3 INT);』

  ↓

1.id
2.name
3.busho_id
4.test1
5.test2
6.test3

【2】カラム削除(ALTER TABLE ~ DROP)

既存のテーブルに対してカラムの削除を行う場合は、「ALTER TABLE(DROP)」コマンドを使用します。

構文

ALTER TABLE テーブル名 DROP カラム名

カラム削除例(1)

1.id
2.name
3.create_datetime
4.busho_id

  ↓

『mysql> ALTER TABLE Touken DROP create_datetime;』
「Touken」テーブルの「create_datetime(作成日時)」カラムが削除されます。

  ↓

1.id
2.name
3.busho_id

カラム削除例(2) 複数カラム削除

1.id
2.name
3.busho_id
4.test1
5.test2
6.test3

  ↓

『mysql> ALTER TABLE Touken DROP test1, DROP test2, DROP test3;』

  ↓

1.id
2.name
3.busho_id

【3】まとめ

今回は、カラムの追加/削除について紹介しました。

カラム追加は、枠が追加されるだけなので問題となることはあまりありません。

一方、カラム削除は、削除対象カラムの中に格納されていたデータが消失してしまいます。事前に必ずバックアップを取っておきましょう。バックアップ、大事です。

TOPに戻る

「MySQL」参考情報 第12回 MySQLの文字列結合

【1】文字列結合

MySQLで文字列結合処理を行う方法について紹介します。

サンプルDBテーブル

刀剣DB(ToukenDB)の刀剣情報(Touken)テーブルに以下のレコードが格納されているとします。

id(刀剣ID)name(刀剣名)name_kana(刀剣名カナ)
1陸奥守吉行ムツノカミヨシユキ
2三日月宗近ミカヅキムネチカ
3燭台切光忠ショクダイキリミツタダ

MySQLの機能を使用して、『刀剣ID(1)は、陸奥守吉行(ムツノカミヨシユキ)です』と出力するように文字列結合を行います。

CONCAT

「CONCAT」で文字列を結合できます。

『mysql> SELECT CONCAT("刀剣ID(", id, ")は、", name, "(", name_kana, ")です") FROM Touken;』
  ↓
「刀剣ID(1)は、陸奥守吉行(ムツノカミヨシユキ)です」
「刀剣ID(2)は、三日月宗近(ミカヅキムネチカ)です」
「刀剣ID(3)は、燭台切光忠(ショクダイキリミツタダ)です」

CONCAT_WS

「CONCAT_WS」は、指定文字を間に入れて、文字列を結合できます。
第1引数の文字が、間に挟み込まれます。

『mysql> SELECT CONCAT_WS(" ", name, name_kana) FROM Touken;』
  ↓
「陸奥守吉行 ムツノカミヨシユキ」
「三日月宗近 ミカヅキムネチカ」
「燭台切光忠 ショクダイキリミツタダ」

パイプ(||)

「パイプ(||)」でも、文字列を結合できます。
※SQL_MODEに「PIPES_AS_CONCAT」の設定が必要です。

『mysql> SET SQL_MODE="PIPES_AS_CONCAT" ;』
『mysql> SELECT "刀剣ID(" || id || ")は、" || name || "(" || name_kana || ")です" FROM Touken;』
  ↓
「刀剣ID(1)は、陸奥守吉行(ムツノカミヨシユキ)です」
「刀剣ID(2)は、三日月宗近(ミカヅキムネチカ)です」
「刀剣ID(3)は、燭台切光忠(ショクダイキリミツタダ)です」

「CONCAT」に比べると、「(」「)」「,」が少なくなり、見やすくできます。

【2】文字列結合の注意点

CONCAT(CONCAT_WS)使用時に、NULLが含まれる場合

刀剣DB(ToukenDB)の刀剣情報(Touken)テーブルに以下のレコードが格納されているとします。

id(刀剣ID)name(刀剣名)name_kana(刀剣名カナ)
1陸奥守吉行ムツノカミヨシユキ
2NULLミカヅキムネチカ
3燭台切光忠NULL

この状態で、上記と同じように、CONCATで文字列結合を行います。

『mysql> SELECT CONCAT("刀剣ID(", id, ")は、", name, "(", name_kana, ")です") FROM Touken;』
  ↓
「刀剣ID(1)は、陸奥守吉行(ムツノカミヨシユキ)です」
「」←NULL
「」←NULL

CONCATでの文字列結合対象の中にNULLが含まれていると、全体がNULLになってしまいます。

「IFNULL」を使用すると、NULLを空白文字に変換することで回避できます。

『mysql> SELECT CONCAT("刀剣ID(", id, ")は、", IFNULL(name, ""), "(", IFNULL(name_kana, ""), ")です") FROM Touken;』
  ↓
「刀剣ID(1)は、陸奥守吉行(ムツノカミヨシユキ)です」
「刀剣ID(2)は、(ミカヅキムネチカ)です」
「刀剣ID(3)は、燭台切光忠()です」

【3】まとめ

今回は、MySQLの文字列結合について紹介しました。

文字列結合部分の記述を行う場合、「(」「"」「,」「)」などが大量に登場してくるため、間違ってしまいやすくなります。

『mysql> SELECT CONCAT(
"刀剣ID(",
id,
")は、",
IFNULL(name, ""),
"(",
IFNULL(name_kana, ""),
")です"
) FROM Touken;』
のように1行ずつ改行して、多少なりとも分かりやすくするという手段も使えます。

TOPに戻る

「MySQL」参考情報 第13回 MySQLの日付フォーマット

【1】日付(時刻)フォーマット

テーブル内に格納されている日時カラムデータを出力する際には、さまざまなフォーマットを指定できます。

主なフォーマット

日時単位形式出力例書式
西暦4桁2016%Y
西暦2桁16%y
ゼロ埋め05%m
英名May%M
ゼロ埋め07%d
曜日英名Tuesday%W
24時間形式ゼロ埋め09%H
ゼロ埋め09%i
ゼロ埋め09%S

DATE_FORMAT

DATE_FORMATを使用すると、フォーマット指定出力できます。

現時刻を表示する例
『mysql> SELECT DATE_FORMAT(now(),'%Y/%m/%d');』
 ↓
「2016/05/17」

サンプルテーブル

Touken(刀剣)テーブルに以下のデータが入っているとします。

id(刀剣ID)name(刀剣名)create_date(登録日時)
1大和守安定2016/05/17 10:05:12
2和泉守兼定2016/05/18 10:15:34
3鶯丸2016/05/19 10:30:56

出力例(1) 漢字表記

『[刀剣名]の登録日時は、[登録日時]です。』のように出力します。

『mysql> SELECT CONCAT(name, "の登録日時は、", DATE_FORMAT(create_date,'%Y年%m月%d日 %H時%i分'), "です。") FROM Touken;』
 ↓
「大和守安定の登録日時は、2016年05月17日 10時05分です。」
「和泉守兼定の登録日時は、2016年05月18日 10時15分です。」
「鶯丸の登録日時は、2016年05月19日 10時30分です。」

出力例(2) 英語表記

『[刀剣名]の登録日は、[登録日]です。』のように出力します。

『mysql> SELECT CONCAT(name, "の登録日は、", DATE_FORMAT(create_date,'%d %M %Y'), "です。") FROM Touken;』
 ↓
「大和守安定の登録日は、17 May 2016です。」
「和泉守兼定の登録日は、18 May 2016です。」
「鶯丸の登録日は、19 May 2016です。」

参考サイト

フォーマット指定方法として、上記で紹介した以外にも多くの種類を使うことができます。こちらのサイトでは、MySQLの日時フォーマットが綺麗にまとめられています。PHPでの日時フォーマットも併記されており、便利に参照できます。
→Risewill →PHPとMySQLの日付型のFORMAT

【2】日付(時刻)関数

MySQLには、日時に関する便利な内部関数がいろいろと用意されています。これらの関数を利用することで、日時データをフォーマット指定出力する以上の処理を行えます。

主な関数

関数名機能概要
DAYNAME曜日名(英語)を取得
QUARTER四半期を取得
DATEDIFF日付間の日数計算
DATE_ADD日付加算
DATE_SUB日付減算
SEC_TO_TIME秒→時刻に変換
TIME_TO_SEC時刻→秒に変換

参考サイト

日時関数は、多くの種類があります。こちらのサイトでは、多くの関数について、詳しく解説しています。
→MySQL →MySQL 5.6 リファレンスマニュアル →関数と演算子 →日付および時間関数

【3】まとめ

今回は、MySQLの「日時フォーマット」と「日時関数」について紹介しました。

日時データを見やすく分かりやすい表現方法で出力できますので、いろいろなフォーマットにチャレンジしてみてください。

TOPに戻る

「MySQL」参考情報 第14回 MySQLのパスワード変更

【1】パスワード再設定(SET PASSWORD)

作成済ユーザのパスワードを再設定するためには、「SET PASSWORD」文を使用します。

構文

SET PASSWORD = PASSWORD('新パスワード')

SET PASSWORD FOR ユーザ名@ホスト名 = PASSWORD('新パスワード')
 ※「ユーザ名@ホスト名」で指定する必要があります。

実行サンプル(1) ログインしているユーザのパスワードを変更

『mysql> SET PASSWORD = PASSWORD('makoto');』
  ↓
ログインしているユーザのパスワードが「makoto」に変更されます。

実行サンプル(2) 指定ユーザのパスワードを変更

「Shinsen_gumi(新選組)」ホスト(ドメイン)に所属するユーザ「Okita_Souji(沖田総司)」のパスワードを変更する場合です。

『mysql> SET PASSWORD FOR Okita_Souji@Shinsen_gumi = PASSWORD('kenshi');』
  ↓
「Okita_Souji(沖田総司)」のパスワードが「kenshi」に変更されます。

【2】パスワード文字長/使用できる文字

パスワード文字長

「8文字以上64文字以下」という規定があります。

使用できる文字

半角英字
「abcdefghijklmnopqrstuvwxyz」
「ABCDEFGHIJKLMNOPQRSTUVWXYZ」
※大文字、小文字は区別されます。

半角数字
「0123456789」

半角記号
「! # % & ( ) * + , - . / ; < = > ? @ [ ] ^ _ { | } ~」

【3】パスワード設定注意点

MySQLに関してのみに限ったことではありませんが、パスワードには、情報(データ)を守る大切な役割があります。

機密データを扱う場合には、特に、類推されやすいパスワードが設定されることがないように注意が必要です。

考慮すべきポイント

・ある程度以上の文字列長がある
・辞書に載っているような単純なワードは使用しない
・繰り返しのような規則性がないようにする
・英数字記号が混在している(英字だけではなく数字/記号も入れる)
・他のシステムで使用しているパスワードを使いまわさない
・名前、生年月日、郵便番号、電話番号などを利用しない
・キーボードの並び(qwertyなど)は使用しない
・本人が記憶できること
・他人は類推しにくいこと

パスワード検証プラグイン(validate_password プラグイン)

MySQLには、パスワード検証プラグインが用意されています。パスワードをテストしてセキュリティを向上させるために使用できます。

パスワード検査強度として、「LOW」「MEDIUM」「STRONG」の3つのレベルから選択できます。

こちらのサイトでは、パスワード検証プラグインのインストール方法と使用方法を解説しています。
→MySQL 5.6 リファレンスマニュアル →パスワード検証プラグイン

【4】まとめ

今回は、パスワード変更(再設定)について紹介しました。

類推されて突破されてしまうことがないようなパスワードを設定するようにしましょう。

TOPに戻る

「MySQL」参考情報 第15回 MySQLのポート

【1】「ポート番号」とは

概要

「ポート番号」とは、TCP/IPプロトコルを利用したネットワーク通信のIPアドレスの下に設けられた補助アドレスのことです。

説明

「ポート番号」とは、コンピュータがネットワーク通信に使用するプログラム(アプリケーション)を識別するための番号です。「ポート」と略されます。

ポートは、0から65535までの、65536個の番号で管理されています。主要なプログラム機能については、どの番号のポートを使うのかについて決められています。

IPアドレスを使えば、ネットワーク上のコンピュータを一意に識別することができます。しかし、IPアドレスのみでは、該当コンピュータ上の、どのプログラムに通信パケットを届ければよいのか特定できません。そのため、「IPアドレス」+「ポート番号」のセットとして使用することで、該当コンピュータの該当プログラムに通信パケットを届けることができます。

「IPアドレス」を住所(東京都xxx区xxx町1-2-3 メゾン五穀)として、「ポート番号」を部屋番号(203号室)と例えるなら、住所+部屋番号の組み合わせの情報で、郵便物が配達されるというイメージになります。

代表的なポート番号

・20番/21番=FTP(ファイル転送)
・25番=SMTP(メール送信)
・80番=HTTP(Webブラウザ)
・110番=POP3(メール受信)
・443番=HTTPS(Webブラウザ)
など

【2】MySQLのポート

MySQLも、ポート番号を使用してネットワーク通信を行っています。

デフォルトポート番号

MySQLのデフォルトポート番号は「3306」です。

ポート番号確認方法(1) STATUS

接続しているMySQLのポート番号を確認する方法です。

『mysql> STATUS』
  ↓
「TCP Port:」として、ポート番号が表示されます。

ポート番号確認方法(2) SHOW VARIABLES

こちらの方法でも、ポート番号を確認できます。

『mysql> SHOW VARIABLES LIKE ‘port’;』
  ↓
ポート番号が表示されます。

ポート番号を指定してMySQLに接続する方法

ポート番号が「9123」で動作しているMySQLへの接続方法です。

『C:¥MySql¥bin> mysql -u root -D test -p -P 9123
※「-P 9123」の部分でポート番号を指定します。

MySQLがデフォルトポート番号「3306」で動作している場合、ポート番号指定は不要です。

ポート番号変更方法

ポート番号を変更するためには、設定ファイル「my.ini」の「SERVER SECTION」の部分に記述されている、「port=3306」を任意のポート番号に書き換え、MySQLの再起動を行います。

【3】まとめ

今回は、MySQLのポートについて紹介しました。

MySQLを普通に使用するだけなら、ポートはデフォルトのままで特に問題ありません。しかし、ポートが変更されているMySQLもありますので、「ポート」の概要について把握しておきましょう。

TOPに戻る

「MySQL」参考情報 第16回 MySQLの再起動

MySQLの主な再起動方法について、起動/停止方法と共に、OS別に紹介します。

MySQLバージョン/インストール方法/インストールツールなどにより、パス/デーモン名/サービス名などは異なります。各環境に合わせて読みかえてください。

【1】MySQL再起動/起動/停止方法 Linux

コンソール

再起動
[root@web1 ~]# /etc/init.d/mysqld restart

起動
[root@web1 ~]# /etc/init.d/mysqld start

停止
[root@web1 ~]# /etc/init.d/mysqld stop

【2】MySQL再起動/起動/停止方法 Windows

コマンドプロンプト netコマンド

Windowsでは、「MySQL停止→起動」の処理により、再起動させます。

管理者としてコマンドプロンプトを起動します。

停止
C:¥Windows¥system32>net stop mysql

起動
C:¥Windows¥system32>net start mysql

コマンドプロンプト mysqladmin(mysqld)

Windowsでは、「MySQL停止→起動」の処理により、再起動させます。

管理者としてコマンドプロンプトを起動します。

停止
C:¥> "C:¥Program Files¥MySQL¥MySQL Server 5.6¥bin¥mysqladmin" -u root shutdown

起動
C:¥> "C:¥Program Files¥MySQL¥MySQL Server 5.6¥bin¥mysqld"

MySQL Notifier GUI

「MySQL Notifier GUI」を使用して、MySQLの起動/停止/再起動することも可能です。

Windows→コントロールパネル→サービス

「コントロールパネル」→「システムとメンテナンス」→「管理ツール」→「サービス」を起動します。

サービス一覧から「MySQL」を選択して、サービスの開始/停止/再起動を行います。

【3】MySQL再起動/起動/停止方法 Mac

コンソール

再起動
$ sudo /usr/local/mysql-5.0.96-osx10.5-x86_64/support-files/mysql.server restart

停止
$ sudo /usr/local/mysql-5.0.96-osx10.5-x86_64/support-files/mysql.server stop

起動
$ sudo /usr/local/mysql-5.0.96-osx10.5-x86_64/support-files/mysql.server start

【4】まとめ

今回は、各OS別に、主なMySQLの再起動/起動/停止の方法の一例について紹介しました。

同じOSであっても、それぞれ構築されている環境ごとに異なるため、自分が使う環境で使いこなせるようにしましょう。

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

MySQL最新CLOSEUPコラム

無料資料プレゼント

フォレスターによる調査レポート「サービスとしてのデータベース (2017 年第 2 四半期)」AWS社提供

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter