目的
mysql> create database database_name;でデータベースを作成しようとしたところ、
Failed to create schema directory 'test_table' (errno: 2 - No such file or directory)
と表示されてしまったため、その解決法をまとめようと思う。
結論
PCを再起動し、
mysqlログインの際に、作成したユーザーでログインするのではなく、
mysql -uroot
でログインするとすんなりdatabaseの作成が行えた。
実施環境
ハードウェア環境
| 項目 | 情報 |
|---|---|
| OS | macOS Catalina(10.15.7) |
| ハードウェア | MacBook Air (11-inch, Early 2015) |
| プロセッサ | 1.6 GHz デュアルコアIntel Core i5 |
| メモリ | 4 GB 1600 MHz DDR3 |
| グラフィックス | intel HD Graphics 6000 1536 MB |
ソフトウェア環境
| 項目 | 情報 |
|---|---|
| homebrew | 3.3.8 |
| mysql | Ver 8.0.27 for macos10.15 on x86_64 |
| python | 3.8.12 |
| django | 3.1.2 |
経緯
ローカル開発環境でmysqlにログイン後、 mysql> create database database_name;でテーブルを作成しようとしたところ、
Failed to create schema directory 'test_table' (errno: 2 - No such file or directory)
と表示された。
原因究明
ログインしているユーザーにtableのcreate権限がないということが判明した。
権限の付与を行う必要がある。
こちらとこちらの記事を参考にユーザーに権限を付与していく。
testというユーザーを作成し
create user test@localhost identified by 'test_password';
createだけでなく、全ての権限を与えたが、
grant all on *.* to test@localhost;
変わらず、、。
解決
PCを再起動し、ログインの際に
mysql -uroot
でログインするとすんなりデータベースの作成が行えた。
なぜこれでいけるのかかなり引っかかるため、この権限周りについては後ほど詳細に調べていく。