ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
このエラーの概要
MySQL / MariaDB に接続しようとしたときに次のメッセージが返ります:
ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)
SQLSTATE 28000 は 「無効な認可指定」を意味し、認証フェーズでサーバーがログインを拒否したことを示します。CSV エクスポートツール、phpMyAdmin、アプリケーションからの接続、いずれの場面でも発生します。
原因の切り分け
| 原因 | 確認方法 | 対処 |
|---|---|---|
| パスワード誤り | メッセージ末尾 (using password: YES) | 正しいパスワードで接続、リセット |
| ユーザー未作成 | SELECT user, host FROM mysql.user; | CREATE USER で作成 |
| ホスト不一致 | 同上、host 列確認 | 'user'@'%' で全ホスト許可、または特定 IP 指定 |
| 認証プラグイン違い | SELECT user, plugin FROM mysql.user; | ALTER USER ... IDENTIFIED WITH mysql_native_password |
| 権限不足 | SHOW GRANTS FOR 'user'@'host'; | GRANT で追加 |
| パスワードファイル誤り | my.cnf の [client] セクション | 正しいパスワードに書換え |
対処1: ユーザー / ホストを確認
-- root で接続して確認(root 自体が拒否される場合は対処5参照)
mysql -u root -p
-- 全ユーザー一覧
SELECT user, host, plugin FROM mysql.user ORDER BY user, host;
-- 'app_user'@'localhost' で接続できないが、'app_user'@'%' は存在する場合
-- → クライアント側で別ホストから接続しているのに 'localhost' エントリでログインしようとしている
-- ホスト '%' は「任意のホスト」だが localhost を含まない MySQL 8.x の挙動に注意
対処2: ユーザー作成 / 権限付与
-- ユーザー新規作成(localhost からのみ)
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd!';
-- 任意ホストから接続可能なユーザー
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongP@ssw0rd!';
-- 権限付与(特定 DB の全権限)
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'localhost';
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'%';
-- 反映
FLUSH PRIVILEGES;
-- 確認
SHOW GRANTS FOR 'app_user'@'localhost';
対処3: パスワードを変更(リセット)
-- MySQL 5.7+ / 8.x
ALTER USER 'app_user'@'localhost' IDENTIFIED BY 'NewP@ssw0rd!';
-- 同じ user を別ホストごとに変更
ALTER USER 'app_user'@'%' IDENTIFIED BY 'NewP@ssw0rd!';
-- 旧式
SET PASSWORD FOR 'app_user'@'localhost' = PASSWORD('NewP@ssw0rd!'); -- MySQL 5.6 まで
FLUSH PRIVILEGES;
対処4: 認証プラグインの違い(MySQL 8 でハマる)
MySQL 8.0 から既定の認証プラグインが caching_sha2_password に変わりました。古いクライアント / ライブラリは未対応で 1045 が出ます:
-- 現在のプラグイン確認
SELECT user, host, plugin FROM mysql.user WHERE user = 'app_user';
-- user | host | plugin
-- app_user | localhost | caching_sha2_password ← これだと旧クライアントから繋がらない
-- 旧式プラグインに変更
ALTER USER 'app_user'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'StrongP@ssw0rd!';
FLUSH PRIVILEGES;
または my.cnf でサーバー既定を変更(影響範囲大):
# /etc/mysql/my.cnf または /etc/my.cnf
[mysqld]
default_authentication_plugin = mysql_native_password
対処5: root パスワード忘れ / root 自体がはじかれる
# MySQL を停止
sudo systemctl stop mysql
# セーフモード(認証スキップ)で起動
sudo mysqld_safe --skip-grant-tables --skip-networking &
# パスワード無しで root 接続
mysql -u root
# パスワード再設定
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass!';
mysql> EXIT;
# 通常起動に戻す
sudo killall mysqld
sudo systemctl start mysql
# 新パスワードで接続
mysql -u root -p
対処6: クライアント設定 (my.cnf / .my.cnf) を確認
CSV エクスポート系ツール(mysqldump、mysqlpump)は ~/.my.cnf や /etc/mysql/my.cnf の [client] / [mysqldump] セクションを参照します:
# ~/.my.cnf ← 個人用
[client]
user = app_user
password = StrongP@ssw0rd!
host = localhost
[mysqldump]
user = backup_user
password = BackupP@ss!# パーミッション 600 が必須
chmod 600 ~/.my.cnf
# 設定ファイルを明示指定
mysqldump --defaults-file=~/.my.cnf mydb > backup.sql
# 設定ファイル無視
mysqldump --no-defaults -u app_user -p mydb > backup.sql
typical な接続例
# 基本
mysql -u app_user -p mydb
# Enter password: ********
# ホスト・ポート指定
mysql -h 192.168.1.10 -P 3306 -u app_user -p mydb
# SSL 接続
mysql --ssl-mode=REQUIRED -u app_user -p -h db.example.com
# SOCKET 経由(localhost のみ)
mysql -S /var/run/mysqld/mysqld.sock -u root -p
FAQ
Q: 'user'@'%' を作ったのに localhost から繋がらない
A: MySQL では 'user'@'localhost' と 'user'@'%' は別エントリ扱い。localhost 接続では UNIX ソケット経由で localhost エントリが優先されます。両方作るか、明示的に -h 127.0.0.1 を使うと TCP 経由となり % がマッチします。
Q: パスワード正しいのに 1045 が出続ける
A: 1) パスワード末尾のスペース、2) 認証プラグインの違い、3) ホスト名解決の失敗(DNS)、4) MySQL の skip-name-resolve 設定、を順に確認。
Q: phpMyAdmin で 1045
A: config.inc.php の $cfg['Servers'][$i]['host']、['user']、['password'] を確認。host = 'localhost' と '127.0.0.1' で挙動が変わるので注意。
関連エラー
ERROR 1044 (42000): Access denied for user ... to database— DB 単位の権限不足、GRANTで対処ERROR 2002 (HY000): Can't connect to local MySQL server through socket— MySQL 自体が起動していないERROR 2003 (HY000): Can't connect to MySQL server— ホスト到達不可、ファイアウォール
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 1071 Specified key was too long; max key length is 767 bytes
- ERROR 1063 (42000): Incorrect column specifier for column '~'
- mysqld: Can't change dir to '...\MySQL\MySQL Server X.X\data\' (OS errno 2 - No such file or directory)
- Install/Remove of the Service Denied!
- Datetime 型が NULL に見える
- Warning: World-writable config file '/etc/mysql/my.cnf' is ignored
- ERROR 1698 (28000): Access denied for user 'root'@'localhost'
- Exception: Wrong MySQL configuration
- [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- Incorrect column specifier for column 'カラム名'
- BLOB/TEXT column 'description' used in key specification without a key length
- ERROR: /bin/sh: mysql_config: コマンドが見つかりません
- Host '...' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
- CSVエクスポート時に「ERROR 1045 (28000): Access denied for user 'username'@'localhost'」エラーが表示される
- Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT
- SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: ~
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?