目的
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
でログインするとすんなりデータベースの作成が行えた。
なぜこれでいけるのかかなり引っかかるため、この権限周りについては後ほど詳細に調べていく。