MySQL

MySQLデータベース作成手順|無料サーバーでの作り方

ノートパソコンでデータを分析するイメージ
要点: MySQLデータベースの作成手順を解説。DB・ユーザー作成、権限付与、PHP接続情報の確認まで、つまずきやすい順に案内します。

この記事でできること

空のデータベースとユーザーを作り、PHP接続に必要な4情報(ホスト・DB名・ユーザー・パスワード)を揃えるところまで進めます。確認用の posts テーブル作成と疎通確認まで含みます。用語の整理はMySQLとは、接続実装はPHPとMySQL接続で扱います。

所要時間の目安は20〜40分です。DB作成自体は10分程度で終わりますが、正式名の控えと権限付与、テスト行の確認まで行うと失敗が減ります。私たちはMySQL公式ドキュメントとPHP公式マニュアル(php.net)を参考にまとめました。

必要なもの・前提条件

必要なもの具体例・設定値備考
サーバーアカウントFreeHostBoxのアカウント管理画面にログインできる状態にする
強固なパスワード16文字以上のランダム文字列生成機能があれば利用し、安全に保管する
控え用メモホスト名・DB名・ユーザー名正式名をコピー&ペーストで控える
テキストエディタUTF-8(BOMなし)保存SQL実行時の文字化け防止に重要
ブラウザとHTTPS無料SSL有効化後の確認PHP確認時にhttpsで開く

私たちはMySQL 8 / MariaDB 11.4無料SSL、FTP・オンラインファイルマネージャー、Softaculous 400+アプリ5GB NVMeストレージ転送無制限・VistaPanel・Cron・phpMyAdminをご用意しています。ぜひ無料プランでお試しください。DB個数や上限はプランで変わるため、料金ページと管理画面の表示で確認してください。

4情報の役割は下表の通りです。1つでも欠けると接続できません。

情報役割
ホスト名localhost(環境の表示値を使う)DBサーバーの場所
DB名example_db(正式名をコピー)接続先の倉庫名
ユーザー名example_user(正式名をコピー)倉庫に入る鍵の名義
パスワード生成した強固な文字列鍵本体。共有・公開厳禁

詳細手順:DB作成から疎通確認までの7歩

データ保存に焦点を当てたサーバーラックのイメージ
作成するのはデータベース・ユーザー・権限の3点セット

手順1:管理画面にログインする アカウント情報で管理画面(一般例としてコントロールパネルの表示)を開きます。ログイン後にデータベース関連の項目を探します。管理画面の表示に従って進めてください。

手順2:「MySQLデータベース」等の項目を開く データベース管理の項目を開き、既存DB一覧の表示を確認します。既に上限に達している場合は不要DBの整理またはプラン確認が必要です。WordPress自動設置を使う場合は、WordPress始め方記事の案内も先に確認してください。Softaculousをご用意していますので、手動作成不要の場合があります。ぜひ無料プランでお試しください。

手順3:新しいDBを作成し正式名をメモする 任意名(例:blog)を入力して作成します。環境によってはアカウント名の接頭辞が自動付与され、正式名が account_blog のようになります。表示された正式名(例:example_db)をコピーして控えます。推測で短縮せず、表示値をそのまま使います。

手順4:新しいDBユーザーを作成しパスワードを保管する 任意のユーザー名(例:bloguser)と強固なパスワードを設定します。正式名(例:example_user)を控え、パスワードはパスワード管理ツールやオフラインの安全な場所に保管します。チャットやメールでの平文共有は避けます。

手順5:ユーザーをDBへ追加し権限を付与する 作成したユーザーを作成したDBへ紐付け、必要な権限を付与します。一般例として一覧表示・投稿用途では SELECT、INSERT、UPDATE、DELETE を含む基本権限が必要です。管理系の強い権限は不要に付けず、用途に絞ります。紐付け漏れは接続拒否の典型原因です。

手順6:ホスト名を控える ホスト名の表示値(一般例:localhost)を確認して控えます。環境により異なるため決め打ちせず、管理画面の表示に従って進めてください。4情報が揃った時点で、PHPとMySQL接続記事の db.php に転記できる状態になります。

手順7:確認用テーブルとテスト行を作り疎通確認する 次章のSQL全文で posts テーブルを作成し、2件のテスト行を入れて SELECT で確認します。ここまでできたらDB側の準備は完了です。PHP側の表示確認は list.php で行います(PHPの動かし方記事の表示確認の応用です)。

SQL全文:posts作成と確認

DB作成後に実行する確認用SQLです。管理画面のDB操作項目(一般例としてphpMyAdmin等のSQL実行欄の表示)で、対象DB(例:example_db)を選んで実行します。文字セットは utf8mb4に統一します。

-- 対象DBで実行する。文字セットはutf8mb4に統一
CREATE TABLE IF NOT EXISTS posts (
  id INT AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(200) NOT NULL,
  body TEXT,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 確認用テスト行を2件登録
INSERT INTO posts (title, body) VALUES
('初投稿', 'DB作成後の確認用1行目です'),
('二回目の投稿', 'DB作成後の確認用2行目です');

-- 登録内容の確認:一覧の取り出し
SELECT id, title, created_at FROM posts ORDER BY id DESC LIMIT 10;

実行後に2行が返れば成功です。テーブル一覧に posts が見えない場合は、対象DBの選択間違いや作成未完了が原因です。SHOW TABLES; で一覧確認し、SHOW CREATE TABLE posts; で文字セットが utf8mb4 であることを確認します。

PHP側の接続ファイル(db.php)への転記例も示します。4情報の置き場所は1か所にまとめます。

<?php
// db.php:4情報を1か所にまとめる。HTMLは書かない
$host = 'localhost'; // 管理画面の表示値をコピー
$db   = 'example_db'; // 作成後に表示された正式名
$user = 'example_user';
$pass = 'STRONG_PASSWORD_HERE'; // 実際の値に置き換える。共有・公開厳禁

$pdo = new PDO(
  "mysql:host={$host};dbname={$db};charset=utf8mb4",
  $user,
  $pass,
  [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);

警告:パスワード等の秘密情報をソースコードへ直書きしたまま、公開リポジトリへpushしたり、権限の緩い共有で配布したりしないでください。この例の 'STRONG_PASSWORD_HERE' は仮値です。実運用では接続ファイルの公開範囲と権限を確認し、管理画面の安全な保管手段や環境変数の利用を検討します。パスワード再設定後は db.php 側の値も更新します。

よくある失敗と解決:6症状の切り分け表

暗い部屋のコード画面のイメージ
正式名のコピペで防げる失敗が多い

作成直後の失敗は正式名・紐付け・権限の3点に集中します。コードを疑う前に下表の上から確認します。

症状原因候補対処
一覧にDBが出ない作成未完了・表示切替・選択DB違い再読み込みし、正式名で検索し、対象DBの選択を見直す
接続拒否(Access denied)ユーザー紐付け漏れ・権限不足ユーザーをDBへ追加し、基本権限を付与し直す
パスワード不一致コピペミス・再生成後の転記忘れパスワードを再設定し、db.php の値も同時に更新する
Unknown databaseDB名の綴り間違い・接頭辞落とし作成後の正式名をコピーし直し、短縮せずそのまま使う
上限エラーで作成できないプラン上限・不要DB残存不要DBを整理するか、料金・機能ページと案内表示で上限確認する
テーブルがないと言われる対象DB違い・テーブル未作成接続先DB名と SHOW TABLES; を確認し、正しいDBでCREATE TABLEする

補足として、ホスト名の決め打ちは失敗の元です。localhost で動く環境が多いものの、環境により異なるため管理画面の表示に従って進めてください。文字化けが出る場合は、テーブル utf8mb4、接続 charset=utf8mb4、PHP保存UTF-8、HTMLの meta charset の4点を統一します。PHP側の切り分けはPHPとMySQL接続記事のエラー表も参照してください。

完了チェックリストと接続確認

  • DBが作成され、接頭辞込みの正式名(例:example_db)を控えた
  • DBユーザーが作成され、正式名(例:example_user)とパスワードを安全に保管した
  • ユーザーがDBへ追加され、必要な権限が付与されている
  • ホスト名の表示値を控えた(決め打ちしていない)
  • posts テーブルが utf8mb4 で作成され、テスト2行がSELECTで返る
  • 4情報が db.php に転記され、list.php で一覧表示できる
  • パスワードを共有・公開場所に置いていない
  • 管理画面の表示と公式ドキュメントで最新仕様を確認した

接続確認の手順は2段階です。SQL実行欄で SELECT が返ることを確認し、次に list.phphttps://あなたのURL/list.php で開いて同じ2行が表示されることを確認します。表示されない場合はチェックリストの上から見直し、複数箇所を同時に変えないのがコツです。表示確認の基礎はPHPの動かし方記事、用語の復習はMySQL解説記事で行えます。確認結果は成功したSQL文と返却件数、表示URLとともに記録します。記録があれば再発時の比較が容易で、パスワード変更や権限変更の影響範囲も特定できます。一覧表示側ではDBの値をそのまま出さず htmlspecialchars で無害化し、PDOのプレースホルダで取得した結果を安全に表示します。

補足:パスワード保管と権限・退避の実務

パスワードは16文字以上のランダム文字列を生成し、パスワード管理ツールに保管します。管理画面に生成機能がある場合はそちらを使い、目視で作った短い単語や使い回しは避けます。控えメモにはパスワードそのものではなく「管理ツールの項目名」を書き、平文の付箋やチャット共有を避けます。パスワードを再設定したら、接続ファイル db.php の値も同時に更新し、旧パスワードが残っていないか確認します。複数人で運用する場合は、誰がいつ変更したかを共有メモに残します。

権限付与は用途に絞ります。一覧表示と投稿が主用途なら、対象DBへの SELECT、INSERT、UPDATE、DELETE を含む基本権限で足ります。構造変更(ALTER、DROP)や他DBへの権限は、必要になるまで付けません。WordPress自動設置を使う場合は、設置ツール側の案内に従い、手動での権限追加が要るかを確認します。不要になったテスト用DBや旧ユーザーは残さず削除し、残す場合は用途と削除予定日をメモします。上限エラーが出た場合は、不要DBの整理を先に行い、プランの上限表示と見比べます。

削除系の操作前は退避します。DROP DATABASE や無条件 DELETE は取り消せません。管理画面のエクスポート機能で対象DBを退避し、ファイル名に日付(例:example_db-20260909.sql)を付けて保管します。テーブル削除前は SHOW TABLES;SELECT COUNT(*) で対象を確認し、別DBを触っていないか画面上部のDB名表示で再確認します。実行後は posts の一覧表示で影響範囲を確認します。確認完了後はエクスポートファイルを保管場所へ移し、作業メモへ完了日時を追記します。次回作業者が迷わないよう正式名の読み方も添えます。

注意点・セキュリティ

  • 正式名のコピーを使う:DB名・ユーザー名は表示値をそのまま使います。推測の短縮や大文字小文字の変更はエラーの原因です。
  • 権限は必要最小限にする:用途に絞って付与し、不要な管理権限を付けません。管理画面の表示に従って進めてください。
  • パスワードを使い回さない:DB用に生成した強固な文字列を使い、他サービスと共有しません。再設定後は接続ファイルも更新します。
  • 本番のエラー詳細表示は避ける:接続失敗文の詳細は画面に出さず、ログで確認します。
  • バックアップと削除に注意する:DROP DATABASEDELETE 無条件実行は取り消せません。実行前に SELECT ... WHERE で対象確認し、必要に応じてエクスポート退避します。
  • 画面名称は目安として読む:メニュー名やフォルダ名は管理画面の表示に従って進めてください。
  • 作業メモを残す:作成したDB正式名・ユーザー正式名・ホスト名・作成日・用途を1か所にまとめます。テスト用と本番用のDBを分け、削除予定日も書きます。複数DBがある場合は接頭辞込みの正式名で区別し、推測の略称を使いません。権限変更やパスワード再設定の履歴も追記すると、接続不良時の切り分けが早くなります。管理画面の表示変更に備えて記録日も残します。

次に読む記事

出典・参考資料

  • MySQL公式ドキュメント:CREATE TABLE・権限・文字セット(utf8mb4)の仕様
  • PHP公式マニュアル(php.net):PDOの接続と例外処理の仕様
  • 無料プランの内容は料金ページをご覧ください。分からなければ私たちがサポートします。まずは無料プランで実際に触って確かめてみてください。

よくある質問

DB名とユーザー名は同じで良い?

環境の命名規則に従います。接頭辞が付く場合があるため、作成後に表示された正式名をコピーして使います。推測で短縮せず、表示名をそのまま控えるのが確実です。

権限とは?

そのユーザーがそのDBへ何をして良いかの許可です。作成時にDBへ紐付けて権限を付与します。用途に絞った最小権限が基本です。

ホスト名は?

多くはlocalhostですが環境により異なります。管理画面の表示に従って進めてください。決め打ちせず、表示値をコピーします。

テーブルはこの記事で作るの?

DBとユーザーの作成が主範囲で、テーブルは確認用のpostsを最小構成で作ります。本格的な設計やPHP連携は別記事で拡張します。

WordPressを使う場合も手動作成は必要?

自動設置(Softaculous等の案内がある場合)は手動作成不要の場合があります。FreeHostBoxではSoftaculousをご用意していますので、ぜひ無料プランでお試しください。管理画面の表示に従って進めてください。

作成後に接続できないときは?

4情報の綴り、ユーザー紐付け、権限付与の順に確認します。パスワード再設定後はPHP側の接続ファイルも更新します。

更新履歴: 公開 2026-09-04 / 最終更新 2026-09-09。技術仕様・対応バージョンは変更されるため、重要な設定は公式ドキュメントも併せて確認してください。

DBを作ってPHPとつなげる

DB作成からPHP接続まで通して試すと一気に理解が進みます。

PHP×MySQLを読む 他の記事を探す