MySQLとは? わかりやすく解説

MySQL

読み方マイエスキューエル

MySQLとは、Sun MicrosystemsからオープンソースソフトウェアOSS)として公開されているリレーショナルデータベース管理システムRDBMS)の名称である。

MySQLは、もともとはMySQL AB社において開発・提供が行われていたソフトウェアであり、オープンソース提供されてはいるが、商用データベース勝るとも劣らない品質実現している。独自アーキテクチャーデータベースエンジン搭載しており、パフォーマンスの高さに定評がある他、数MB単位からTB単位まで対応するスケーラビリティの高さや、LinuxUNIXWindowsなどの複数プラットフォーム対応するマルチプラットフォーム性、柔軟なカスタマイズ性トランザクション処理などに関する堅牢性といった点でも優れているといわれる

MySQLは、高性能であり、巨大なシステムにも対応でき、かつ、GPLライセンスに従って自由に利用することができることから、商用サイト含めて多くデータベースデータベース管理システムとして採用されている。Yahoo!GoogleYouTubeWikipedia、といった、巨大なデータベースシステムにおいても、MySQLが採用されていることが知られている。

OSS利用してWebアプリケーションプラットフォーム構築する際、最もよく利用されるソフトウェアセットとして、LAMPと呼ばれる組み合わせがある。「L」はOSLinux、「A」はWebサーバーApache、そして「M」がデータベースのMySQLを指している。なお「P」はプログラミング言語として、PHP、またはPerlPythonいずれかを指す。

MySQLは、OSSRDBMSとしては世界で最も多く利用されているといわれている。なお、MySQLと同様にOSSとして提供されているRDBMSとしては、PostgreSQL挙げることができる。


参照リンク
MySQL - (英文
MySQL
データベースのほかの用語一覧
データベース:  DB2  GLR  Microsoft Access  MySQL  Microsoft Query  NEEDS  PostgreSQL

MySQL 関数

php.ini の設定により動作が変化します。
表 170. MySQL 設定オプション
名前デフォルト変更の可否変更履歴
mysql.allow_persistent"1"PHP_INI_SYSTEM 
mysql.max_persistent"-1"PHP_INI_SYSTEM 
mysql.max_links"-1"PHP_INI_SYSTEM 
mysql.trace_mode"0"PHP_INI_ALLPHP 4.3.0 以降で使用可能です。
mysql.default_portNULLPHP_INI_ALL 
mysql.default_socketNULLPHP_INI_ALLPHP 4.0.1 以降で使用可能です。
mysql.default_hostNULLPHP_INI_ALL 
mysql.default_userNULLPHP_INI_ALL 
mysql.default_passwordNULLPHP_INI_ALL 
mysql.connect_timeout"60"PHP_INI_ALLPHP <= 4.3.2 では PHP_INI_SYSTEM で、PHP 4.3.0 以降で使用可能です。

PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。
以下に設定ディレクティブに関する 簡単な説明を示します。
mysql.allow_persistent boolean
MySQL への 持続的接続 を可能にするかどうか。
mysql.max_persistent integer
プロセス毎の持続的 MySQL 接続の最大数。
mysql.max_links integer
持続的接続を含むプロセス毎の MySQL 接続の最大数。
mysql.trace_mode boolean
トレースモード。mysql.trace_mode が有効の場合、 テーブル/インデックスのスキャン時の警告・結果セットの未開放・SQL エラー などが画面に表示されます(PHP 4.3.0 以降で使用可能です)。
mysql.default_port string
他のポートが指定されない場合、データベースサーバ接続時に使用される デフォルトの TCP ポート番号。デフォルトが指定されない場合は、 環境変数 MYSQL_TCP_PORT/etc/servicesmysql-tcpエントリ・コンパイル時の MYSQL_PORT 定数の順番でポートが取得されます。 Win32 では、MYSQL_PORT 定数のみが使用されます。
mysql.default_socket string
他にソケット名が指定されない場合、ローカルなデータベースサーバに 接続する時のデフォルトのソケット名。
mysql.default_host string
他のサーバ名が指定されない場合に、データベースサーバへの接続時に 使用されるデフォルトのサーバ名。 SQL セーフモード では適用されません。
mysql.default_user string
他のユーザ名が指定されない場合に、データベースサーバへの接続時に 使用されるデフォルトのユーザ名。 SQL セーフモード では適用されません。
mysql.default_password string
他のパスワードが指定されない場合に、データベースサーバへの接続時に 使用されるデフォルトのパスワード。 SQL セーフモード では適用されません。
mysql.connect_timeout integer
接続の有効時間(単位:秒)。Linux では、この有効時間はサーバからの 最初の応答の待ち時間としても使用されます。

リソース型

MySQL モジュールでは、2 種類のリソース型が使用されています。 最初のリソースはデータベース接続のリンク ID で、2 番目のリソースは クエリ結果を保持するリソースです。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
PHP 4.3.0 以降では、mysql_connect()mysql_pconnect() で追加のクライアントフラグを 指定できるようになりました。以下の定数が定義されています。 表 171. MySQL クライアント定数
定数説明
MYSQL_CLIENT_COMPRESS圧縮プロトコルを利用します。
MYSQL_CLIENT_IGNORE_SPACE関数名の後のスペースを許可します。
MYSQL_CLIENT_INTERACTIVEinteractive_timeout で指定された秒数(wait_timeout のかわり) の無通信が続くまで接続を閉じません。
MYSQL_CLIENT_SSLSSL による暗号化を使用します。このフラグは、バージョン 4.x 以降の MySQL クライアントライブラリを利用している場合にのみ有効です。 PHP 4 や、Windows 版の PHP 5 にバンドルされているのは、バージョン 3.23.x のライブラリです。


mysql_fetch_array() 関数は、結果の配列の形式を 指定するための定数を使用します。以下の定数が定義されています。 表 172. MySQL フェッチ定数
定数説明
MYSQL_ASSOC カラムは、フィールド名を添字とする配列形式で返されます。
MYSQL_BOTH カラムは、数値の添字とフィールド名の添字のどちらでもアクセスできる 配列形式で返されます。
MYSQL_NUM カラムは、数値の添字を持つ配列形式で返されます。添字は 0 からはじまり、 結果の最初のフィールドです。


注意

注意: ほとんどの MySQL 関数は、link_identifier を 最後のパラメータとしてオプションで受け付けます。これを指定しなかった場合、 直近にオープンされた接続が使用されます。もし直近の接続が存在しない場合、 php.ini のデフォルトパラメータを使用して接続を確立しようとします。 この試行にも失敗した場合、関数は FALSE を返します。

以下は、MySQL データベースに接続し、クエリを実行し、結果レコードを 出力、接続を切断する例です。 例 1307. MySQL 拡張モジュールに関する例
<?php
// データベースに接続し、選択する
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
   or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// SQL クエリを実行する
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// HTML に結果を出力する
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
}
echo "</table>\n";

// 結果セットを開放する
mysql_free_result($result);

// 接続を閉じる
mysql_close($link);
?>


目次

mysql_affected_rows — 一番最近の操作で変更された行の数を得る
mysql_change_user — アクティブな接続でログイン中のユーザーを変更する
mysql_client_encoding — 文字セット名を返す
mysql_close — MySQL 接続を閉じる
mysql_connect — MySQL サーバへの接続をオープンする
mysql_create_db — MySQL データベースを作成する
mysql_data_seek — 内部的な結果ポインタを移動する
mysql_db_name — データベース名を得る
mysql_db_query — MySQL クエリーを送信する
mysql_drop_db — MySQLデータベースを破棄(削除)する
mysql_errno — 直近の MySQL 処理からエラーメッセージのエラー番号を返す
mysql_error — 直近に実行された MySQL 操作のエラーメッセージを返す
mysql_escape_string — mysql_query で使用するために文字列をエスケープする
mysql_fetch_array — 連想配列、添字配列、またはその両方として結果の行を取得する
mysql_fetch_assoc — 連想配列として結果の行を取得する
mysql_fetch_field — 結果からカラム情報を取得し、オブジェクトとして返す
mysql_fetch_lengths — 結果における各出力の長さを得る
mysql_fetch_object — 結果の行をオブジェクトとして取得する
mysql_fetch_row — 結果を添字配列として取得する
mysql_field_flags — 結果において指定したフィールドのフラグを取得する
mysql_field_len — 指定したフィールドの長さを返す
mysql_field_name — 結果において指定したフィールド名を取得する
mysql_field_seek — 結果ポインタを指定したフィールドオフセットにセットする
mysql_field_table — 指定したフィールドが含まれるテーブルの名前を取得する
mysql_field_type — 結果において指定したフィールドの型を取得する
mysql_free_result — 結果保持用メモリを開放する
mysql_get_client_info — MySQL クライアント情報を取得する
mysql_get_host_info — MySQL ホスト情報を取得する
mysql_get_proto_info — MySQL プロトコル情報を取得する
mysql_get_server_info — MySQL サーバ情報を取得する
mysql_info — 直近のクエリについての情報を得る
mysql_insert_id — 直近の INSERT 操作で生成された ID を得る
mysql_list_dbs — MySQL サーバ上で利用可能なデータベースのリストを得る
mysql_list_fields — MySQL テーブルのフィールドのリストを得る
mysql_list_processes — MySQL プロセスのリストを得る
mysql_list_tables — MySQL データベース上のテーブルのリストを得る
mysql_num_fields — 結果におけるフィールドの数を得る
mysql_num_rows — 結果における行の数を得る
mysql_pconnect — MySQL サーバへの持続的な接続をオープンする
mysql_ping — サーバとの接続状況を調べ、接続されていない場合は再接続する
mysql_query — MySQL クエリを送信する
mysql_real_escape_string — SQL 文中で用いる文字列の特殊文字をエスケープする
mysql_result — 結果データを得る
mysql_select_db — MySQL データベースを選択する
mysql_stat — 現在のシステムの状態を取得する
mysql_tablename — フィールドのテーブル名を得る
mysql_thread_id — カレントのスレッド ID を返す
mysql_unbuffered_query — MySQL に SQL クエリを送信するが、結果に対してのフェッチやバッファリングは行わない

MySQL 関数 (PDO_MYSQL)

導入

PDO_MYSQL は、PHP から MySQL 3.x、4.x および 5.x データベースへのアクセスを可能にするための PHP Data Objects (PDO) インターフェース を実装したドライバです。
PDO_MYSQL は、MySQL 4.1 以降に存在するプリペアドステートメントを ネイティブにサポートしているという利点があります。 古いバージョンの mysql クライアントライブラリを使用している場合は、 PDO がこの機能をエミュレートします。

警告
注意: MySQL のテーブル型 (ストレージエンジン) の中には、 トランザクションをサポートしていないものがあります。 トランザクションをサポートしていないテーブル型を使用して トランザクションを使用するコードを書くと、 MySQL はトランザクションが正常に使用できたかのように振舞います。 さらに、DDL クエリを実行する際には、 実行中のトランザクションが暗黙的にコミットされます。

定義済み定数

このドライバでは以下の定数が定義されて います。これは拡張モジュールが PHP に組み込まれているか、実行時に動的にロード されている場合のみ使用可能です。さらに、これらのドライバ固有の定数は そのドライバを使用している場合にのみ使用されます。 postgres ドライバで mysql 固有の属性を使用すると、予期せぬ結果を引き起こします。 もし複数のドライバを使用しているコードを実行している場合、 PDO::getAttribute()PDO_ATTR_DRIVER_NAME 属性を使用することで、使用中のドライバ名を調べることが可能です。
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (integer)
PDOStatement でこの属性を TRUE に設定すると、 MySQL ドライバはバッファ版の MySQL API を使用します。 移植性の高いコードを書くには、代わりに PDOStatement::fetchAll() を使用すべきです。
例 1363. mysql でクエリのバッファリングを強制する
<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
   $stmt = $db->prepare('select * from foo',
       array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
   die("このアプリケーションは mysql でしか動作しません。代わりに \$stmt->fetchAll() を使用すべきです");
}
?>


PDO::MYSQL_ATTR_LOCAL_INFILE (integer)
LOAD LOCAL INFILE を有効にします。
PDO::MYSQL_ATTR_INIT_COMMAND (integer)
MySQL サーバへの接続時に実行するコマンドを指定します。 再接続の際には自動的に再実行されます。
PDO::MYSQL_ATTR_READ_DEFAULT_FILE (integer)
my.cnf ではなく、 指定した名前のファイルからオプションを読み込みます。
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (integer)
my.cnf あるいは 別のファイル (MYSQL_READ_DEFAULT_FILE で指定したもの) の中の、指定した名前のグループからオプションを読み込みます。
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (integer)
バッファの最大サイズ。デフォルトは 1 MiB です。
PDO::MYSQL_ATTR_DIRECT_QUERY (integer)
プリペアドステートメントではなく、直接クエリを実行します。

目次

PDO_MYSQL DSN — MySQL データベースに接続する

MySQL

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/25 17:38 UTC 版)

MySQL(マイ・エスキューエル、海外では俗にマイ・シークェルとも)は、オープンソースリレーショナルデータベース管理システム (RDBMS) である。その名前は、共同設立者のミカエル・ウィデニウスの娘の名前である「My」と、Structured Query Languageの略称である「SQL」を組み合わせたものである。


  1. ^ Initially, it was a MyISAM-only feature; supported by InnoDB since the release of MySQL 5.6.
  2. ^ Prior to MySQL 5.5.3, UTF-8 and UCS-2 encoded strings are limited to the BMP; MySQL 5.5.3 and later use utf8mb4 for full Unicode support.
  3. ^ In MySQL 5.0, storage engines must be compiled in; since MySQL 5.1, storage engines can be dynamically loaded at run time.
  4. ^ なお、ウィキペディア自体はMySQLからフォークしたMariaDBの利用へと移行している。
  5. ^ MySQL :: MySQL Workbench
  6. ^ phpMyBackupPro - the MySQL backup tool :: Features
  7. ^ Navicat for MySQL | MySQLに対応したDB管理・開発ツール
  8. ^ MySQL :: MySQL Workbench: Administration
  9. ^ Home - Nucleon Software
  10. ^ Sequel Pro
  11. ^ Adminer - Database management in a single PHP file
  1. ^ Changes in MySQL 8.3.0 (2024-01-16, Innovation Release)” (英語). MySQL 8.3.0 Release Notes. MySQL.com. 2024年3月14日閲覧。
  2. ^ Slide 1”. Oracle. 2024年3月6日閲覧。
  3. ^ MySQL”. www.mysql.com. 2024年3月5日閲覧。
  4. ^ MySQL 8.0 リファレンスマニュアル”. MySQL. 2022年7月3日閲覧。
  5. ^ Which Should I Use: MySQL Enterprise or MySQL Community Server?”. MySQL AB. 2009年4月9日時点のオリジナルよりアーカイブ。2009年4月8日閲覧。
  6. ^ Guy Harrison; Steven Feuerstein (2008). MySQL Stored Procedure Programming. O'Reilly Media. p. 49. ISBN 978-0-596-10089-6. https://books.google.com/books?id=YpeP0ok0cO4C&pg=PT75 
  7. ^ Monitoring RDS MySQL performance metrics”. Datadog (2015年10月20日). 2015年12月14日閲覧。
  8. ^ MySQL :: InnoDB 1.1 for MySQL 5.5 User's Guide :: C InnoDB Glossary :: ACID”. 2010年12月25日時点のオリジナルよりアーカイブ。2011年1月5日閲覧。
  9. ^ Replication”. MySQL. 2020年5月2日閲覧。
  10. ^ MariaDB Replication”. MariaDB KnowledgeBase. 2019年3月9日閲覧。
  11. ^ MySQL :: MySQL 5.7 Reference Manual :: 16.1.4 MySQL Multi-Source Replication”. dev.mysql.com. 2019年3月9日閲覧。
  12. ^ MySQL :: MySQL 5.7 Reference Manual :: 16.3.9 Semisynchronous Replication”. dev.mysql.com. 2019年3月9日閲覧。
  13. ^ Semisynchronous Replication”. MariaDB KnowledgeBase. 2019年3月9日閲覧。
  14. ^ MySQL Cluster Replication: Multi-Master and Circular Replication”. MySQL. 2020年5月2日閲覧。
  15. ^ MySQL University: MySQL Galera Multi-Master Replication”. Oracle Corporation. 2020年5月2日閲覧。
  16. ^ MySQL :: MySQL 8.0 Reference Manual :: 18 Group Replication”. dev.mysql.com. 2019年3月9日閲覧。
  17. ^ MySQL :: MySQL 8.0 Reference Manual :: 18 Group Replication”. dev.mysql.com. 2019年3月9日閲覧。
  18. ^ DB-Engines Ranking - popularity ranking of database management systems
  19. ^ http://www-jp.mysql.com/why-mysql/marketshare/
  20. ^ a b オープンソフトウェア:第2回オープンソースソフトウェア活用ビジネス実態調査:IPA 独立行政法人 情報処理推進機構
  21. ^ 451 Group survey highlights user concerns over Oracle's proposed ownership of MySQL
  22. ^ MySQLのライセンスポリシー
  23. ^ FOSS License Exception
  24. ^ MySQL Editions
  25. ^ 1.5. What Is New in MySQL 5.5
  26. ^ Oracle>About>Press Room>Oracle Announces General Availability of MySQL 5.6
  27. ^ Oracle Japan>Media centre home>ニュースリリース>MySQL5.6の一般提供開始を発表
  28. ^ MySQL 8.0: New Features in Replication
  29. ^ http://ossipedia.ipa.go.jp/doc/201
  30. ^ SQL ServerとOSSが勢力拡大の兆し――DBMS市場:ITmedia リサーチインタラクティブ 第6回調査 - ITmedia エンタープライズ
  31. ^ Supported Platforms: MySQL Database
  32. ^ Open ESQL



MySQL

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/05 08:20 UTC 版)

Mac OS X Lion」の記事における「MySQL」の解説

プリインストールされなくなった為、自分インストールする、またはPostgreSQL利用可能

※この「MySQL」の解説は、「Mac OS X Lion」の解説の一部です。
「MySQL」を含む「Mac OS X Lion」の記事については、「Mac OS X Lion」の概要を参照ください。

ウィキペディア小見出し辞書の「MySQL」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「MySQL」の関連用語

MySQLのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MySQLのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
OSS iPediaOSS iPedia
Copyright © Information-technology Promotion Agency, Japan. All rights reserved 2006-2024
PHPプロ!PHPプロ!
©COPYRIGHT ASIAL CORPORATION ALL RIGHTS RESERVED.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【MySQL】の記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのMySQL (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのMac OS X Lion (改訂履歴)、RocksDB (改訂履歴)、列挙型 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS