commandからmysqlの操作

[MYSQL 起動 コマンド]

dcm ps
1. 一旦mysql確認

cat docker-compose.yml
2. serviceを見る

dcm exec db sh
3. Docker-compose中のshellに接続します。
docker execと同じこと。

mysql -u「db_user_name(this is written in .env file))」 -p「(p stands for password)」
Enter password: (password)
4. mysqlをこのuser名前でこのpasswordで起動しますと言う意味

Use 「DBNAME」
Database changed
5. Use 「DBNAME」;
このDBに接続しますと言う意味

Show tables;
6. Shows list of tables in the database
database内のtableのリストを表示します

これでsqlコマンドなど全て書くことができます。

¥q(逆slash)
7. To get out from database
databaseから出ます。

Exit
8. Shellから出ます。

<その以外のコマンド>

Show grants / show grants for current_user;
-> 現在のuserの権限を見る

SQL文の例>

create table user (
   -> id int not null auto_increment,
   -> name varchar(20) not null,
   -> constraint pk_example primary key(id)
   -> );
insert into user(id, name) values(null, 'sample data');
mysql> insert into user values (null, 'happy_sample');
Query OK, 1 row affected (0.00 sec)
mysql> select * from user
   -> ;
+----+--------------+
| id | name         |
+----+--------------+
|  1 | sample data  |
|  2 | happy_sample |
+----+--------------+
2 rows in set (0.00 sec)
mysql> insert into user values(1, 'number_err');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

いろんなSQL文を入れたりdropしたり試してみましたが、大体ORACLEのSQL文と似ていてました。

[MYSQLDUMPの活用]
一旦Shellの中でしなければならない。

mysqldumpDBNAME-u 「USERNAME-p > dump.sql;
password: (password)

こうしたらSQL-format dump filesをexportすることができます。

cat dump.sql
//作成したdumpの内容確認

[今日の失敗のtodo]現在のローカルmysqlの中に、別のDBを作って、dumpしたデータで別のデータベースを作成してください。それを、tableplusで接続して、データの更新や、スキーマ変更をしてみてください。

mysql> create database [database_name];
Query OK, 1 row affected (0.00 sec)

mysql> create user '[username]'@'localhost' identified by '[password]';
Query OK, 0 rows affected (0.00 sec)

//これはNG。 routeと言うコマンドを入力してdockerがみるdatabaseのHOST IP ADDRESSを確認してlocalhostの代わりに正確に書きます。
mysql> grant all privileges on [database_name].* to 'username'@'ip_address';
Query OK, 0 rows affected, 1 warning (0.00 sec)
//usernameと言うuserにdatabaseの全体的な権限をくれます。
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| database_name   |
+--------------------+

確認したら成功的に作られました。でもここでtableplusからconnectしようとしたんですが、

エーラが出てきました。理由はまだ...