Web制作、Web開発の歩き方

Linux Essentials for Web Developers

第9話:データベースとLinux: MySQL/PostgreSQLの使用

(最終更新日:2024.01.08)

Linuxのイメージ
この記事は5分で読めます!
(絵が小さい場合はスマホを横に)

「Linux上にデータベースをセッティングしよう」

Linux上では、MySQLやPostgreSQL、MariaDBなど、様々なデータベースをインストールできる。 今回はこれらのデータベースのインストール方法とユーザー作成、バックアップと復元方法、 プログラミング言語からの接続方法について説明したいと思う。 また、データベース管理として有用なGUIツールについても紹介する。


1.データベースサーバーの設定と管理

Linux上でMySQLやPostgreSQLなどのデータベースサーバーを使用する際には、適切なインストール、設定、および管理が重要だ。 ここでは、これらのデータベースの基本的な設定と管理について概説する。今回はMySQLを例に取り上げる。

Apacheのインストールは、Debian/Ubuntu系では「sudo apt-get install mysql-server」、 Red Hat/CentOS系では「sudo yum install mysql-server」になる。 MySQLを安全に設定するため、最初に「sudo mysql_secure_installation」を行う。 これにより、rootパスワードの設定、匿名ユーザーの削除、リモートログインの無効化などを行うことができる。

Webサーバーをインストール、初期設定する

まずは、rootユーザーでログインしよう。 rootユーザーとしてのログインコマンドは「mysql -u root -p」で、初期パスワードが設定されていない場合、 何も押さずにEnterキーを押せば、ログインできる。先の「mysql_secure_installation」を行っている場合は、 そこで設定したrootパスワードを使用してログインできる。ログイン後、パスワードを設定しよう。 そして、ログインしたら、使用するデータベースを作成し、ユーザーとそれらの権限も設定する。 具体的な方法としては、以下のSQL文にある通りになる。最初のCREATE文でユーザーを作成し、 そのユーザーに対して、あるデータベースへの全ての権限を付与している。

ユーザ作成と権限の付与

また、データベースは重要なデータを扱うことが多いので、バックアップを取る必要がある。 「mysqldump -u username -p database_name > backup.sql」でbackup.sqlファイルに今あるデータを保存することができ、 「mysql -u username -p database_name < backup.sql」で復元することができる。 また、ここで紹介した操作は、コマンドだけでなくWeb制作、Web開発のロードマップの4話で紹介した、 MySQL WorkBenchやphpMyAdminといったGUIツールでマウスや命令を選んで操作することもできる。 データの中身を管理する場合は、GUIツールがあったほうが見やすくて間違いが少ないので、ぜひ使ってみよう。

MySQL WorkBenchではSQL文の実行結果が見られる

2.SQLとの連携方法

Linux上でMySQLやPostgreSQLデータベースを使用する際、SQLを使ってデータベースと連携するにはいくつか方法がある。

■コマンドラインツールを用いた方法
コマンドラインツールの使用、プログラミング言語を介したデータベース操作、およびグラフィカルなデータベース管理ツールの使用などが挙げられる。 コマンドラインツールは、普段コマンド操作する際に使っているTera TermやMac標準のTerminalである。 コマンドの実行方法は上記で説明したとおり「mysql -u root -p」でログインしてSQLの操作を行えばよい。

■プログラミング言語を介した方法
次にプログラミング言語を介したSQLの実行について説明する。 基本的には、メジャーなプログラミング言語はMySQLやPostgreSQLなどのリレーショナルデータベースと連携できるようになっている。 下記ではPythonのドライバ、mysql-connector-pythonを用いた例を説明する。 このドライバは「pip install mysql-connector-python」でインストールできる。 Python自体のインストールはあらかじめ行っておこう。これにより、下記のようなPythonコードでデータベースを操作できるようになる。 単純にTable内のデータを全て表示するように命令している。

Pythonでデータベースのデータを表示する

■GUIを使用する方法
GUIツールを使用する方法としては、先に挙げたMySQL WorkbenchやphpMyAdminなどを使うと良い。 他にもPostgreSQLならPgAdmin、様々なリレーショナルデータベースに対応したなどがある。 自分にとって使いやすいものを選ぼう。

GUIを使うとデータベース管理しやすくなる

3.まとめ

今回はデータベースサーバーの設定について解説した。 データベースは重要なデータを扱うことが多いので、バックアップに関しては必ず取るようにしよう。 加えて、今回は説明しなかったが、セキュリティやパフォーマンスの観点から、 商用としてはWebサーバーとは別のサーバーにデータベースサーバーをインストールすることが多い。 インストール方法自体は今回説明した通りで、Webサーバーからデータベースに接続する際、hostにそのIPアドレスを指定する。 そこだけ注意しよう。

▼参考図書、サイト

 「スーパーユーザーなら知っておくべきLinuxシステムの仕組み」 インプレス Brian Ward, 柴田 芳樹
 「Linux再入門―カーネル、シェル、ファイルといった基本概念を理解してトラブルシューティング力を高めよう」 Udemy しま