👼

はじめてのRDS作成+MySQLでの操作

2024/08/02に公開

AWSではじめてRDS(MySQL)を作成し、pythonコードでMySQLを操作したので備忘録を残します。

EC2へのmysqlのインストール

https://qiita.com/Bjp8kHYYPFq8MrI/items/734ac300c04e447edef3

https://dev.classmethod.jp/articles/install-mysql-client-to-amazon-linux-2023/

sudo dnf -y localinstall  https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf -y install mysql mysql-community-client

Complete!とでれば完了

[root@ip-10-30-175-167 ~]# mysql --version
mysql  Ver 8.0.39 for Linux on x86_64 (MySQL Community Server - GPL)

私の環境ではGPG check Failedが出力されました

GPG key更新

https://qiita.com/yasushi-jp/items/1d6b3f0a96dd13727e20

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
dnf upgrade -y

と実施してから

sudo dnf -y install mysql mysql-community-client

をするときちんとinstallできました

RDSインスタンスの作成

DBサブネットグループの作成

どこにDBを作成するか設定するために必要です。

RDSの作成

使用するDBを選択する


さきほど作成した既存のサブネットグループを選択する

接続するEC2インスタンスを選択する

EC2上からのmysqlにアクセスする

mysql -u <user_name> -p -h <host_name>

pythonコードからはtableを作成するため、database(名前:test)を先に作成しておきます

CREATE DATABASE test;
SHOW DATABASES;

EC2上のpythonコードからmysqlを操作する

コードはbing aiから作成しました☺

<rds_endpoint>:RDS作成後に取得できます

<user_name>:RDS作成時に設定したマスターユーザー名。defaultはadminです
<password>:RDS作成時に設定したpassword
<database_name>:SQLコマンドで作成したDATABASEの名称(今回はtest)

import mysql.connector

# Connect to MySQL
conn = mysql.connector.connect(
    host="<rds_endpoint>",
    user="<user_name>",
    password="<password>",
    database="<database_name>"
)

cursor = conn.cursor()

# Create table with columns
table_name = "large_table_1018"
columns = ", ".join([f"col{i} INT" for i in range(1, 1018)])
create_table_query = f"CREATE TABLE {table_name} ({columns})"

cursor.execute(create_table_query)
conn.commit()

print(f"Table {table_name} created with 1017 columns.")

# Close the connection
cursor.close()
conn.close()

pipとmysql-connector-pythonをインストールする

実行する前に必要なライブラリをインストールします

yum -y install python-pip
pip install mysql-connector-python

実行するとカラムに最大のカラム数である1017が生成されています!

Discussion