DockerのMySQLと接続してテーブル設計がどうなってるか確認しようとしたところ、
ERROR 1046 (3D000): No database selectedというエラーが出てしまったので、
対処法をまとめました。
#MySQLと接続してテーブル設計確認を試みると..
dockerコンテナの名前を確認
docker ps
で出てきたDBのコンテナ名(ここでいうとproject_file_db_1
です)をコピペして、
ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dcba6a097806 project_file_web "entrypoint.sh bash …" 37 hours ago Up 25 hours 0.0.0.0:3000->3000/tcp project_file_web_1
cf035576b002 mysql:8.0.20 "docker-entrypoint.s…" 37 hours ago Up 25 hours 33060/tcp, 0.0.0.0:3307->3306/tcp project_file_db_1
以下コマンドを実行。(今回だとdocker exec -it project_file_db_1 bash
になります)
docker exec -it DBコンテナ名 bash
root@cf035576b002:/#root@cf035576b002:/#
するとroot@cf035576b002:/#
というのが出てくるので、mysql -u root -p
を打ってEnter。
docker-compose.ymlで設定したパスワードを入力してEnterを押すと、MySQLと接続ができます。
% docker exec -it project_file_db_1 bash
root@cf035576b002:/# mysql -u root -p
Enter password: ここにMySQLのパスワードを入力してください
welcomeされました。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25
Server version: 8.0.20 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ここからMySQLにゴニョゴニョしていきます
show tables;
でDBにあるテーブルを確認しようとしました。
mysql> show tables; #これでテーブルが見れるはずなのですが。
ERROR 1046 (3D000): No database selected #あれ..??
mysql> select * from users;
ERROR 1046 (3D000): No database selected #あれ..??
#エラー出現! ERROR 1046 (3D000): No database selected
とりあえずググって出てきたこの記事を参考に、対処します。
#エラー解決方法STEP1. use ;
データベース名画わからない場合は、SHOW databases;
で一覧が出ます。
mysql> SHOW databases;
+--------------------+
| Database |
+--------------------+
| app_development |
| app_test |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
use app_development
を実行。
mysql> use app_development
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
okぽい。
show tables;
します。
mysql> show tables;
+---------------------------+
| Tables_in_app_development |
+---------------------------+
| ar_internal_metadata |
| letters |
| schema_migrations |
| users |
+---------------------------+
4 rows in set (0.01 sec)
見られる様になりました!