ローカルでTiDBを試してみた

## はじめに
「TiDB User Day 2024」に参加してきました！参加した理由は、なんとなく面白そうだったからです。仕事で使ったことあるDBはMySQLとMongoDB, PostgreSQLで、TiDBはまったく使ったことなかったです。TiDB User Dayに参加してみたら予想外に面白く、とりあえず遊びで使ってみたくなりました。

## TiDBとは？初心者が簡単に説明すると…
- scalability が優れてるオープンソースのDB
- MySQL互換

## TiDBをローカル環境で動かしてみた
とりあえずTiDBを動かしてみたいだけなので、ローカル環境で動かしてみることにしました。お手軽！

### 環境
- Ubuntu 22.04.4 LTS

### 参考にしたページ
https://docs.pingcap.com/ja/tidb/stable/quick-start-with-tidb

### TiUPコマンドのインストール
```
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
```

インストール完了後、シェルを再起動。

### クラスター起動
```
tiup playground
```

起動後、以下の文字が表示されました。嬉しい！

```
🎉 TiDB Playground Cluster is started, enjoy!

Connect TiDB:    mysql --comments --host 127.0.0.1 --port 4000 -u root
TiDB Dashboard:  http://127.0.0.1:2379/dashboard
Grafana:         http://127.0.0.1:3000
receive command: display
```

### Connect TiDB
普通にmysqlコマンドで繋がり、mysqlのコマンドが使えたりしました。

```
$ mysql --comments --host 127.0.0.1 --port 4000 -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 742391814
Server version: 8.0.11-TiDB-v8.2.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 8.0 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| sys                |
| test               |
+--------------------+
6 rows in set (0.011 sec)

MySQL [(none)]> create database tidb_test;
Query OK, 0 rows affected (0.151 sec)

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| sys                |
| test               |
| tidb_test          |
+--------------------+
7 rows in set (0.001 sec)

MySQL [(none)]> select version();
+--------------------+
| version()          |
+--------------------+
| 8.0.11-TiDB-v8.2.0 |
+--------------------+
1 row in set (0.001 sec)
```

### TiDB Dashboard
「デフォルトのユーザー名はrootで、パスワードは空」でアクセスできました。綺麗な画面で、GUIで簡単に色々確認できて、いい感じです。
![2024-08-18_193232.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112399/802bb004-87ba-567c-3748-b6d2948414c5.png)

### Grafana
「デフォルトのユーザー名はadminで、パスワードもadmin」でアクセスできました。ログインすると、パスワード変更を求められました。
![2024-08-18_193938.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112399/fa40e465-7313-100c-e32d-39c698a5c2fc.png)

## その他
以下の記事を参考にもう少し見てみたりしました。

https://qiita.com/bohnen/items/a4e42cadeb8223b4a588

### クラスタの状態を確認

```
$ tiup playground display
Pid    Role     Uptime
---    ----     ------
12809  pd       1h0m19.569298389s
12886  tikv     1h0m3.432441151s
13076  tidb     59m57.246221645s
13319  tiflash  59m10.937575796s
```

### ログを確認
```
$ less .tiup/data/ULnHqFO/tidb-0/tidb.log
```

### おわりに
「TiDB User Day 2024」に参加して、TiDB触ってみたいな、と思って、やっと今週触れました。せっかくなので、TiDB初心者&内容ペラペラですが、Qiitaの記事にしてみました。ちなみに、この記事は「TiDB User Day 2024」でいただいたTiDBのTシャツを着て書いております。「SQL at Scale」の文字と宇宙の絵がかっこいいです。「TiDB User Day 2024」楽しかったです。現在アーカイブ動画も公開されている模様なので、興味のある方は見てみても面白いかもです。ありがとうございました。ではでは！

https://pingcap.co.jp/tidb-user-day/