ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
config/database.php の構造
<?php
return [
// デフォルト接続名
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'schema' => 'public',
'sslmode' => 'prefer',
],
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
],
],
'migrations' => 'migrations',
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
'password' => env('REDIS_PASSWORD', null),
],
],
];
各キーの意味
| キー | 意味 |
|---|---|
driver | DB 種別 (mysql / pgsql / sqlite / sqlsrv) |
host / port | DB サーバ |
database | DB 名 (SQLite では DB ファイルパス) |
username / password | 認証情報 |
charset | 接続文字コード (推奨 utf8mb4) |
collation | 照合順序 |
prefix | テーブル名プレフィックス |
strict | MySQL strict mode (true 推奨) |
engine | 新規テーブルのデフォルト ENGINE (null = InnoDB) |
options | PDO ATTR (永続接続 / SSL / 等) |
schema (pgsql) | PostgreSQL のスキーマ名 |
foreign_key_constraints (sqlite) | SQLite で FK を有効化 |
.env 側
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=app
DB_PASSWORD=secret
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
本番では DB_PASSWORD 等を Vault / AWS Secrets Manager から注入するのが安全です。
複数 DB 接続を使う
// config/database.php に 2 つ目の接続を足す
'connections' => [
'mysql' => [ ... ],
'mysql_log' => [
'driver' => 'mysql',
'host' => env('LOG_DB_HOST'),
'database' => env('LOG_DB_NAME'),
'username' => env('LOG_DB_USER'),
'password' => env('LOG_DB_PASS'),
'charset' => 'utf8mb4',
],
],// 利用側
DB::connection('mysql_log')->table('access_logs')->insert([...]);
// Eloquent
class AccessLog extends Model
{
protected $connection = 'mysql_log';
protected $table = 'access_logs';
}
Read / Write 分離 (マスター・スレーブ構成)
'mysql' => [
'read' => [
'host' => [
'192.168.1.10',
'192.168.1.11', // 複数指定で自動ラウンドロビン
],
],
'write' => [
'host' => ['192.168.1.20'],
],
'sticky' => true, // 直前に書いたら同セッション中は write 側を読む
'driver' => 'mysql',
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8mb4',
],
SELECT は read、INSERT/UPDATE/DELETE は write に自動振り分けされます。sticky => true でレプリ遅延を回避できます。
options で PDO を細かく制御
'options' => [
PDO::ATTR_PERSISTENT => true, // 永続接続
PDO::ATTR_EMULATE_PREPARES => false, // 本物の prepared
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET time_zone='+09:00'",
// SSL
PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ca.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/mysql/client-cert.pem',
PDO::MYSQL_ATTR_SSL_KEY => '/etc/mysql/client-key.pem',
],
config:cache 時の注意
php artisan config:cache を打つと bootstrap/cache/config.php にキャッシュされ、.env が以後読まれません。デプロイ手順を以下にすること:
# デプロイ手順 (本番)
git pull
composer install --no-dev --optimize-autoloader
php artisan config:clear # 念のため古いキャッシュ削除
php artisan config:cache # 新しい .env でキャッシュ作成
php artisan route:cache
php artisan view:cache
FAQ
Q: SQLSTATE[HY000] [1045] Access denied
A: ユーザー名 / パスワード / ホスト名 ミス。MySQL は 'user'@'host' 単位で権限管理されており、localhost / % / 127.0.0.1 で別物扱いになる点に注意。
Q: SQLSTATE[HY000] [2002] Connection refused
A: DB が起動していないか、ポートが違うか、bind-address が localhost のみで Docker から繋がっていない。DB_HOST をコンテナ名 (例: mysql) に。
Q: タイムゾーンが UTC のままで困る
A: options で SET time_zone を流す or アプリ側で config/app.php の timezone を Asia/Tokyo に。
📸 参考画像
※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- config/database.phpファイル
- .env
- 複数のデータベースに接続する方法
- DBトランザクション
- DBの悲観ロック
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?