[備忘録] MySQLってColabでも動くの？やってみた

## はじめに

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/fda1a46f-3547-4bed-b484-870650f641c9.png)

今回は、Google Colab上でMySQLをインストールして、Pythonから操作してみるという実験的な取り組みをしてみました。はじめてMySQLを操作してみました。思ったより簡単に動かせたので、備忘録として手順をまとめます。

「とりあえず動かしてみたい」「SQLの練習をしたい」という方にも参考になるはずです。

## 環境
- Google Colab
- MySQL

## インストール手順

### 1. MySQLサーバーのインストール

```bash
# パッケージリストの更新
!apt update

# MySQLサーバーのインストール
!apt install mysql-server -y
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/cd7298bd-aabb-48cb-b7c0-354e09ae8d3d.png)

### 2. MySQLサービスの開始

```bash
# MySQLサービスを開始
!service mysql start

# サービスの状態確認
!service mysql status
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/392bc31e-435e-40a2-80f8-ed4260f9eb3a.png)


### 3. rootユーザーのパスワード設定

```bash
# rootユーザーでMySQLにログイン（初回はパスワードなし）
!mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';"
```

### 4. MySQLクライアントのインストール（Python用）

```bash
# PyMySQLのインストール
!pip install pymysql
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/0c2831e9-c00d-4e86-834c-737c7258fee7.png)

## 基本的な使用方法

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/a3867a45-34f4-4825-bb70-0327445c3097.png)

### データベースの作成とテーブル操作

```python
import pymysql

# データベース接続
connection = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    charset='utf8mb4'
)

try:
    with connection.cursor() as cursor:
        # データベースの作成
        cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")
        cursor.execute("USE test_db")
        
        # テーブルの作成
        cursor.execute("""
            CREATE TABLE IF NOT EXISTS users (
                id INT AUTO_INCREMENT PRIMARY KEY,
                name VARCHAR(100) NOT NULL,
                email VARCHAR(100) UNIQUE NOT NULL
            )
        """)
        
        # データの挿入
        cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", 
                      ("田中太郎", "tanaka@example.com"))
        cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", 
                      ("佐藤花子", "sato@example.com"))
        
        # 変更をコミット
        connection.commit()
        
        # データの取得
        cursor.execute("SELECT * FROM users")
        results = cursor.fetchall()
        
        print("登録されたユーザー:")
        for row in results:
            print(f"ID: {row[0]}, 名前: {row[1]}, メール: {row[2]}")

finally:
    connection.close()
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/81ac30c0-8bc6-467c-8992-3f2443d09575.png)


### SQLクエリの直接実行

```bash
# コマンドラインからMySQLにアクセス
!mysql -u root -p'password' -e "SHOW DATABASES;"
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/7ecbd578-aad2-404b-b39d-2ad9b4d4c25c.png)

## 注意事項

- Google Colabのランタイムがリセットされると、インストールしたMySQLも消えます
- 本格的な開発では、永続化されたデータベースサービスの使用を推奨します
- パスワードはより安全なものに変更してください

## まとめ

Google ColabでMySQLを使用することで、手軽にデータベースの学習や簡単な開発を行うことができます。SQLの練習や小規模なデータ分析には十分な環境です。

より本格的な開発を行う場合は、Google Cloud SQLやAmazon RDSなどのマネージドデータベースサービスの利用を検討してください。

## 参考情報

https://drlee.io/mysql-in-google-colab-a-seamless-integration-ab4bd47c419d