「基本がわかるSQL入門」サポートページ
正誤表、補足情報、サンプルデータなど
基本がわかるSQL入門 サポートページ ~テスト環境 その3~
Windows環境に、MySQL、MariaDB、PostgreSQLをインストールする方法。
いずれかを選択してインストール、ポート番号が重複しなければ共存可能。
※本書掲載のSQL文は、上記3種類を使用して動作確認を行っており、サンプルデータによる実行結果はMySQL(ver8)によるものを掲載しています。
Windows版のDBMSだけをインストール(MySQL 5.7、MySQL 8、MariaDB、PostgreSQL)、それぞれのコマンド画面からSQLを実行することができます。
コマンドラインで使用するクライアントが一緒にインストールされるので、それぞれのコマンドラインクライアントから接続し、SQLの実行を試すことができます。Windows環境の場合、コマンドラインクライアントはスタートメニューから起動できます。
MySQLのダウンロードページ https://www.mysql.com/jp/downloads/ より、「MySQL Cluster CGE」の下にある「MySQL Community (GPL) Downloads »」をクリックします。
続いて、MySQL Installer for Windowsをクリックします。
インストーラーは「mysql-installer-web-community」と「mysql-installer-community」の2種類です。
「mysql-installer-web-community」は、インストール実行中に必要なファイルをダウンロードします。 最新版(8.0.x)のMySQLサーバーの他、バージョン5.6やバージョン5.7を同時にインストールすることも可能です。
「mysql-installer-community」は、インストールに必要なファイルが入っているパッケージで、サイズが400MB以上あります。オフライン環境でインストールする場合や、複数のPCにインストールする場合はこちらがお奨めです。
「Download」ボタンをクリックすると、現在の公開元であるOracleのアカウントでログインまたはサインアップを促す画面が表示されます。
画面下部の「No thanks, just start my download.」をクリックするとダウンロードが始まります。
上記でダウンロードしたファイルを実行し、画面に従ってインストールを進めます。
メモ:
以下のリンクはmysql-installer-web-community-8.0.21.0.msi
による実行例です。
(インストーラーの画面を参考にしたい方はこちら→)MySQLのインストールサンプル(Windows環境)
MySQLサーバーをインストールすると、コマンドラインクライアント(mysql.exe)がインストールされます。
コマンドラインクライアントは、スタートメニューの「MySQL」グループから起動することができます。
クライアントを実行すると「Enter password:」と表示されるので、 インストール時に設定したテスト用ユーザーのパスワードを入力してEnterして接続してください。 接続できると「mysql>」というプロンプトが表示されます。ここで、SQL文を入力して実行します。
実行画面およびプロンプトは各バージョン共通です。
バージョン8.0.x:
スタートメニューで「MySQL 8.0 Command Line Client - Unicode」を実行するとmysqlコマンド(mysql.exe)が起動し、mysql>
というプロンプトが表示されるので、以下のコマンドを実行します。
コピー&ペーストでも実行できます。この場合、7行まとめて選択してコピーし、プロンプト(mysql>
)で右クリックしてペーストします。
一度実行した内容は、上下矢印キーで再度表示し、左右の矢印キーでカーソルを動かして編集することもできます。
-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb default character set utf8mb4;
CREATE DATABASE sampledb default character set utf8mb4;
CREATE DATABASE sampledb2 default character set utf8mb4;
-- 確認(MySQLで管理しているデータベースが一覧表示される)
SHOW DATABASES;
MariaDBのダウンロードページ https://mariadb.com/downloads/ より、「MariaDB Platform」の「MariaDB Community Server」で「Version」と「OS」を選択して「Download」をクリックします。
さまざまなバージョンが公開されていますが、通常は、最新版良いでしょう。なお、「Show All Files」で、選択肢に出ていないOSやバージョンのファイルもダウンロードできます。
上記でダウンロードしたファイルを実行し、画面に従ってインストールを進めます。
メモ:
以下のリンクはmariadb-10.5.5-winx64.msi
による実行例です。
(インストーラーの画面を参考にしたい方はこちら→)MariaDBのインストールサンプル(Windows環境)
MariaDBサーバーをインストールすると、コマンドラインクライアント(mysql.exe)がインストールされます。 MySQLのコマンドラインクライアントと同じ名前で、使い方も同じです。
コマンドラインクライアントは、スタートメニューの「MariaDB」グループから起動することができます。
クライアントを実行すると「Enter password:」と表示されるので、 インストール時に設定したテスト用ユーザーのパスワードを入力してEnterして接続してください。 接続できると「MariaDB [(none)]>」というプロンプトが表示されます。ここで、SQL文を入力して実行します。
コマンドラインクライアントが起動すると、MariaDB [(none)]>
というプロンプトが表示されるので、以下のコマンドを実行します。
※ --
以降はコメントなので入力不要です。この画面からコピー&ペーストして実行する場合は--
以降の部分も一緒にペーストしてかまいません。
※SQLのキーワードは大文字にしていますが、入力は小文字でもかまいません(p.24 2.1節「SQLの種類と基本的な書式」)。
-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb default character set utf8mb4;
CREATE DATABASE sampledb default character set utf8mb4;
CREATE DATABASE sampledb2 default character set utf8mb4;
-- 確認(MySQLで管理しているデータベースが一覧表示される)
SHOW DATABASES;
※作成済のデータベースを削除してから改めて作成したい場合、たとえば「testdb」であればDROP DATABASE testdb;
を先に実行してからCREATE DATABASE…を実行。
スタートメニューから実行するコマンドラインクライアントは、MariaDBの管理者であるroot
ユーザーでMariaDBサーバーに接続しSQLを実行するようになっています。個人のローカルPCでテストする分にこれで問題ありませんが、テスト用のユーザーを使用したい場合は以下のコマンドで作成します。
study
部分はデータベースに接続するユーザー、mypqssword
部分は接続に使用するパスワードです。
適宜、ご自身のユーザー名と使用したいパスワードに置き換えて実行してください。
なお、パスワードはALTER USER ユーザー名 IDENTIFIED BY '新しいパスワード'
で変更できます。
-- データベース接続用のユーザーを作成
-- CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'データベース接続用のパスワード';
CREATE USER 'study'@'localhost' IDENTIFIED BY 'mypassword';
作成したデータベースに対し、データの追加や削除などを含めたすべての権限を与えます。
WITH GRANT OPTION
は権限の追加や削除も行えるようにするためのオプションです。
GRANT ALL ON testdb.* TO 'study'@'localhost' WITH GRANT OPTION;
GRANT ALL ON sampledb.* TO 'study'@'localhost' WITH GRANT OPTION;
GRANT ALL ON sampledb2.* TO 'study'@'localhost' WITH GRANT OPTION;
設定した権限を再読込してmysqlコマンドを終了します。
FLUSH PRIVILEGES;
quit
mysqlコマンドが終了してWindowsのコマンドラインに戻るので、あらためてmysqlコマンドを実行します。 ユーザー「study」でパスワードを使って接続するには以下の様にします。
mysql -ustudy -p
スタートメニューにユーザー「study」用の起動メニューを作成したい場合は以下の様にします。
-uroot
を-ustudy
(-uに続けてユーザー名を入力、スペースは入れない)に変更して保存するスタートメニューで「MySQL Client」を右クリック→その他→ファイルの場所を開く
コピーした「MySQL Client」ショートカットのプロパティを開き「リンク先」を修正
-uroot
を-uユーザー名
とする(この画像では-ustudy
に変更、-u
の直後にスペースを入れないよう注意)
Windows環境のMariaDBの場合、デフォルトの状態だとクライアントコマンドの画面(Windowsのコマンド画面)でUTF-8が文字化けします。
mysqlコマンドで、画面を使わずにサンプルデータファイルを読み込むことでこの問題を回避できます。
mysql データベース名 -uユーザ名 -p --default-character-set=utf8mb4 < SQLファイル名
を実行する以下は、ユーザーroot
で、testdb
にtestdb.sql
を読み込んでいます。
データベースtestdb
を作成した後に実行してください(→サンプルデータベースの作成)。
ファイル名のパスがよくわからない場合は<
記号まで入力したところで、ダウンロードしたサンプルデータファイルをドラッグ&ドロップしてください。
mysql testdb -uroot -p --default-character-set=utf8mb4 < c:\users\study\downloads\testdb.sql
実行画面(参考、クリックで拡大)
mysql testdb -uroot -p --default-character-set=utf8mb4 <
まで入力してファイルをドラッグ&ドロップ
あらためて、mysql データベース名 -uユーザー名 -p
でコマンドラインクライアントを実行
(データベースを省略した場合は起動後にuse データベース名
で選択)
PostgreSQLのダウンロードページ https://www.postgresql.org/download/ で、Windowsをクリックし、「Download the installer」をクリックします。EDB(EnterpriseDB Corporation) のダウンロードページが表示されるので、「Download」をクリックします。
さまざまなバージョンが公開されていますが、通常は、最新版が良いでしょう。 本書では、執筆時点の最新版であった12.4を使用しています(2020.9.24にバージョン13がリリース→日本語版プレスキット)。
上記でダウンロードしたファイルを実行し、画面に従ってインストールを進めます。 複数のバージョンを共存させたい場合、インストール時に設定するポート番号を、バージョン毎に違う数字にしてください。
以下のリンクはpostgresql-12.4-1-windows-x64.exe
による実行例です(postgresql-13.0-1-windows-x64.exe
も同じ手順でインストール可能です)。
(インストーラーの画面を参考にしたい方はこちら→)PostgreSQLのインストールサンプル(Windows環境)
コマンドラインクライアント(psql.exe)は、スタートメニューの「SQL Shell(psql)」で起動します。
起動時に、サーバー、データベース、ポート番号、ユーザー名、コマンドラインクライアントで使用する文字コードを入力するがめのメッセージが表示されます。ここでは画面表示通りなので何も入力せずEnterで進めています。
サーバー名はlocalhost
、データベースはpostgres
(管理用のデータベース)、ポート番号はインストール時に設定したポート番号(画面に表示されている)、コマンドラインクライアントで使用する文字コード(WindowsのデフォルトであるSJISを使用)を指定し、パスワードを入力
コマンドラインクライアントが起動すると、postgres=#
というプロンプトが表示されるので、以下のコマンドを実行します。
※–以降はコメントなので入力不要です。この画面からコピー&ペーストして実行する場合は–以降の部分も一緒にペーストしてかまいません。
※SQLのキーワードは大文字にしていますが、入力は小文字でもかまいません(p.24 2.1節「SQLの種類と基本的な書式」)。
なお、ローカルPCで、psqlコマンドを使ってSQLを試すだけであればユーザーを別途作成せず、管理ユーザーであるpostgresのみの利用でも問題ないでしょう。この場合CREATE USER
は実行せず、CREATE DATABASEに進んでください。
作成済のデータベースは\l
コマンド(psql用のコマンド)で一覧表示できます。
-- データベース接続用のユーザーを作成(任意)
-- CREATE USER ユーザー名 PASSWORD 'データベース接続用のパスワード';
CREATE USER study PASSWORD 'mypassword';
-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb OWNER study ENCODING 'UTF-8';
CREATE DATABASE sampledb OWNER study ENCODING 'UTF-8';
CREATE DATABASE sampledb2 OWNER study ENCODING 'UTF-8';
-- 作成したデータベースを一覧表示
\l
(参考)
-- ユーザーを作成せず、ユーザー「postgres」だけを使用する場合
CREATE DATABASE testdb ENCODING 'UTF-8';
CREATE DATABASE sampledb ENCODING 'UTF-8';
CREATE DATABASE sampledb2 ENCODING 'UTF-8';
スタートメニューの「SQL Shell(psql)」では、バッチファイル(PostgreSQLのインストール先のにあるscripts\runpsql.bat
)が実行されています。
SET username=postgres
という行を探し、SET username=ユーザー名
に変更する