【Webシステム開発入門】MySQLにユーザーアカウントとデータベースを作ろう!

MySQLを使った安全なデータベース運用を始めるために、まずは ユーザーアカウントの作成とデータベースの設定 を行いましょう。本記事では、アカウント作成の重要性から具体的な手順、さらにA5Mk-2での設定方法 までをわかりやすく解説します!

本記事で学べること

  • ✅セキュリティ強化:root以外のアカウントを作成する理由とその効果
  • ✅具体的な手順:コマンドを使ったアカウント作成方法とデータベースの作成方法
  • ✅A5Mk-2の設定:作成したアカウント・データベースをA5Mk-2で利用する設定方法

この記事は次のような方におすすめです:

  • 初めてデータベースを操作する方
  • Webシステム開発でセキュリティを重視したい方
  • JavaとMySQLの連携に興味がある方

事前準備:

この記事を進める前に、前回の記事で解説した「MySQLのインストール手順」を確認してください。まだの方は、以下からご覧いただけます👇

なぜ新しいユーザーアカウントとデータベースが必要なのか

ユーザアカウントの作成理由

MySQLのデフォルトユーザーであるrootをそのまま使用するのは、セキュリティの観点からは推奨されません。専用ユーザーを作成する主な理由は以下の通りです。

  • セキュリティ向上: root権限を制限し、不正アクセス時の被害を軽減できます。
  • 監査: ユーザーごとの操作ログを記録し、問題発生時の原因特定を容易化できます。
  • 利便性: 開発・テスト・本番環境など、用途に応じた権限を持つユーザーを作成し、運用効率化できます。

このように、専用ユーザーを作成することで、セキュリティ、監査、利便性の面で多くのメリットがあります。

データベースの作成理由

既存のMySQLをそのまま使用するのではなく、新規にデータベースを作成する主な理由は以下の通りです。

  • 安全性: 他のデータと分離することで、誤操作によるデータ破損リスクを軽減します。
  • 権限管理: データベース専用のユーザーを作成し、アクセス権限を細かく設定できます。
  • 運用管理: アプリケーションごとにデータベースを分けることで、バックアップや移行を容易化できます。
  • 開発・テスト環境の分離: 本番環境と開発・テスト環境を分離し、データ破壊リスクを軽減します。

このように、データベースを分けることで、安全性、権限管理、運用管理、開発・テスト環境の分離など、多くのメリットが得られます。

新しいユーザーアカウントの作成手順

それでは実際にコマンドプロンプトを使って自分のユーザーアカウントを追加しましょう。

STEP.1
コマンドプロンプトを起動する
  • Windowsボタン+Rを押して「cmd」と入力し、コマンドプロンプトを開きます。
  • ※コマンドプロンプトの使い方がわからない場合は、「コマンドプロンプト 使い方」で調べてください。
STEP.2
MySQLへログインする

以下のコマンドを実行してMySQLにログインします。

mysql -u root -p

実行後、最初に設定したrootユーザーのパスワードを入力してください。正しくログインできれば、mysql> というプロンプトが表示されます。

STEP.3
ユーザーを作成する

以下のコマンドで新しいユーザーを作成します。

CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'secure_password';
  • new_user:作成するユーザー名。
  • localhost:ホスト名(ローカルPCの場合はそのままでOK)。
  • secure_password:設定するパスワード。

成功例:以下のメッセージが表示されれば成功です。

Query OK, 0 rows affected (0.01 sec)
STEP.4
権限を付与する
作成したユーザーに権限を付与します。

GRANT ALL PRIVILEGES ON my_database.* TO 'new_user'@'localhost';
  • my_database:対象のデータベース名(全データベースに適用する場合は*.*)。

補足:必要に応じて、SELECT, INSERT, UPDATE など、特定の操作に絞ることもできます。

成功例:以下のメッセージが表示されれば成功です。

Query OK, 0 rows affected (0.00 sec)

補足:コマンド実行後に、権限を有効化するために以下のコマンドを追加すると良いです。

FLUSH PRIVILEGES;

GRANT の後に FLUSH PRIVILEGES; を実行すると、変更が即時に適用されます。

STEP.5
ユーザーの登録を確認する

以下のコマンドで、ユーザーが正しく追加されているかを確認できます。

SELECT user, host FROM mysql.user;

補足:実行結果に新しいユーザー名が表示されればOKです。

STEP.6
MySQLを終了する

最後に以下のコマンドを入力してMySQLを終了します。

exit;

これでユーザーアカウントの作成は完了です!以降の作業では、この新しいユーザーアカウントを使用して、よりセキュアな操作を行うことができます。

新しいデータベースの作成

コマンドプロンプトを使って新しくデータベースを作成しましょう。STEP2まではアカウント作成までと流れは同じです。

STEP.1
コマンドプロンプトを起動する
  • Windowsボタン+Rを押して「cmd」と入力し、コマンドプロンプトを開きます。
  • ※コマンドプロンプトの使い方がわからない場合は、「コマンドプロンプト 使い方」で調べてください。
STEP.2
MySQLへログインする

以下のコマンドを実行してMySQLにログインします。

mysql -u root -p

実行後、最初に設定したrootユーザーのパスワードを入力してください。正しくログインできれば、mysql> というプロンプトが表示されます。

STEP.3
データベースを作成する

ankisys_db という名前のデータベースを作成する場合、以下のSQLを実行します。

CREATE DATABASE ankisys_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

確認方法:以下のコマンドで追加されたかを確認します。

SHOW DATABASES;

ankisys_db がリストに表示されていれば、データベースの作成は成功です。

STEP.4
データベースに接続する
作成したデータベースに接続するには、以下のコマンドを入力します。

USE ankisys_db;
STEP.5
必要なテーブルを作成する

データベースの中にテーブルを作成します。例えば、account_master テーブルを作成する場合は以下のSQLを実行します。

CREATE TABLE account_master (
AccountID INT NOT NULL AUTO_INCREMENT,
UserID INT NOT NULL,
UserName VARCHAR(50) NOT NULL,
Password VARCHAR(255) NOT NULL,
RoleID INT DEFAULT NULL,
Remarks TEXT,
PRIMARY KEY (AccountID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

作成したテーブルを確認するには、以下のコマンドを実行します。

SHOW TABLES;

account_master がリストに表示されていれば、テーブル作成も成功です。

STEP.6
MySQLを終了する

データベースの作成と確認が終わったら、MySQLを終了してコマンドプロンプトに戻ります。
以下のコマンドを入力してください。

exit;

これでMySQLの操作が終了し、コマンドプロンプトに戻ります。

「A5Mk-2の設定変更:作成したアカウント・データベースへの再ログイン

それでは先ほど作成したアカウント・データベースをA5Mk-2で常に利用できるように設定を変更しましょう。

データベースを追加する画面を開きましょう。起動手順は以下の通りです。

  1. A5Mk-2を起動します。
  2. データベース一覧を右クリックし、「データベースの追加と削除」を選択します。
  3. 左下の【追加】ボタンをクリックします。
  4. 「MySQL/MariaDB(直接接続)」を選択します。
  5. 各項目を以下のように入力します。

    • 「ユーザーID」 → 先ほど作成したユーザーアカウント
    • 「パスワード」 → 設定したパスワード
    • 「データベース」 → 先ほど作成したデータベースを選択
      ※ ユーザーIDとパスワードが正しく入力されていないと、データベースの選択ができません。
  6. 【テスト接続】ボタンをクリックし、成功したら【OK】ボタンをクリックしてデータベースの追加を完了させます。

 

よくあるエラーと対処法

’〇〇’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。

このエラーは、コマンドプロンプトでコマンドが認識されない場合に発生します。主な原因と対処法は以下の通りです。

  • 原因1:コマンドの入力ミス
    コマンドを誤って入力した場合に発生します。特にスペルミスやスペースの有無を確認してください。
  • 原因2:MySQLのパスが環境変数に登録されていない
    MySQLをインストールした後、mysql コマンドを認識するためには、環境変数にMySQLのインストールディレクトリ(binフォルダ)を登録する必要があります。
    対処法:「MySQL 環境変数 設定 手順」で検索すると具体例が見つかります。

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

このエラーは、MySQLへのログインに失敗した場合に発生します。主な原因と対処法を以下にまとめます:

  • 原因1:パスワードが間違っている
    rootユーザーのパスワードを誤入力すると発生します。
    対処法:正しいパスワードを入力してください。パスワードがわからない場合、MySQLの初期設定を確認してください。再インストールするのも1つです。
  • 原因2:MySQLがインストール直後の状態
    MySQLの初期設定時にrootユーザーのパスワードが設定されていない場合に発生します。
    対処法:以下のコマンドで新しいパスワードを設定してください。

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  • 原因3:権限が不足している
    現在ログインしようとしているユーザー(例:new_user)に必要な権限が付与されていない場合に発生します。
    対処法:権限を確認し、必要な権限を付与してください。具体的には以下のコマンドを実行します:

    GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost';
    FLUSH PRIVILEGES;
    

ERROR 1064 (42000): You have an error in your SQL syntax

このエラーは、SQL文に誤りがある場合に発生します。主な原因と対処法を以下にまとめます:

  • 原因1:SQL文の構文ミス
    タイポや構文の誤りが原因で発生します。
    :以下のような誤り

    CREAT USER 'new_user'@'localhost' IDENTIFIED BY 'secure_password';

    対処法CREATE USER のように正しい構文を使用してください。

  • 原因2:文字列の囲み方が間違っている
    SQLでは、文字列をシングルクォート(')で囲む必要があります。ダブルクォート(")を使用している場合は修正してください。
    例:

    CREATE USER "new_user"@'localhost' IDENTIFIED BY "secure_password";
    

    上記はエラーになりますので、以下のように修正してください

    CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'secure_password';

課題

今回の講義に合わせて簡単な課題にチャレンジしてみましょう。
課題3についてはネットなどで調べないとわからない内容ですが、頑張りましょう!
解答については次回記事で紹介します。

課題1

新しくテスト用のデータベースを作成しましょう。
作成するデータベース名は ankisys_test とします。

課題2

ankisys_test だけにログインできる「test」ユーザーを作成しましょう。

課題3

今回作成した ankisys_db のデータを ankisys_test にコピーしてみましょう。
方法がわからない場合は、調べながら試してみてください!

ヒント:「MySQLのデータ移行には INSERT INTO … SELECTmysqldump コマンドを使う方法があります。」


今回の講義では、MySQLの基本的な操作として、ユーザーアカウントとデータベースの作成を行いました。これらはWebシステム開発の基礎となる重要な作業です。

ユーザーアカウント作成

rootユーザーは権限が強すぎるため、Webシステムごとに専用ユーザーを作成し、必要な権限のみを与えましょう。セキュリティリスクを減らし、操作ログの監査も容易になります。

データベース作成

他のシステムとデータベースを共有すると、誤操作でデータを破損する可能性があります。アプリケーションごとに独立したデータベースを作成し、専用ユーザーを設定することで、安全性を高めることができます。

次回の講義では、実際にWebシステムにデータベースを接続し、データの読み書きを行う方法を学びます。お楽しみに!

「記事の更新を待てない!」「すぐに動画で学びたい!」という方には、Udemyでの学習がおすすめです。
私自身も利用して、基礎から応用までしっかりと学べたので、非常に助かりました!ぜひ一度チェックしてみてください。
多彩な講座から自分に合った講座を探そう!

Udemyについての詳しい記事はコチラをご参照ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。