서비스 서버를 구매하는 과정에서 설정관련 내용을 정리해 보려고 합니다.

참고자료

MySQL 설치 및 설정

sudo apt-get update 
sudo apt-get install mysql-server 
sudo mysql_secure_installation 
sudo mysql -u 계정 -P 비밀번호

mysql > use mysql; 
mysql > grant all privileges on *.* to '계정'@'%' identified by '비밀번호'; 
# '%' 은 모든 IP 계정을 의미 합니다
mysql > flush privileges;

mysql > SELECT host, user, password FROM user;
# '%' 가 등록되어 있는지를 확인 합니다
mysql> exit;

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 
# bind-address = 0.0.0.0 

sudo /etc/init.d/mysql restart

MariaDB 설치 및 설정

https://kyeoneee.tistory.com/5

https://yongbeomkim.github.io/sql/sql-mariadb/

nvim /etc/my.cnf

https://jackerlab.com/python-pymysql/

https://kyome.tistory.com/73

SQL은 아직도 익숙치 않아서 어렵게 생각하는 부분이다.

완전하게 익숙해진 다음에 작업할 생각보다는, 조금씩 작업을 진행하면서 필요한 부분을 채워 나가보자.

SQLalchemy 와 Pandas로 조회하기

MariaDB와 연동 및 조회 (SQLalchemy & Pandas)

# DATABASE 연결
from sqlalchemy import create_engine
engine = create_engine('mysql://root:pass@localhost/DATABASE', 
           convert_unicode=True, echo=False)
conn   = engine.connect()

# Table 접속
import pandas as pd
data = pd.read_sql_table('Table', conn)
data.head()


DataFrame 객체를 Pandas로 갱신

작업의 용이성을 위해서 테이블 전체를 Update 하는 if_exist='replace' 설정에는 계속 오류가 발생한다. 지금 가능한건 인덱스를 추가한다

import pandas as pd

# 현재 저장된 TABLE을 조회한다
table = 'Table'
data  = pd.read_sql_table(table, conn)

# 새롭게 변경할 DataFrame을 작성한다
# id를 index로 설정해야한다
data  = pd.DataFrame(columns=data.columns)
data.set_index('id', inplace=True)

# 현재 이작업만 유효하게 작동된다
# 문제는 결과가 괴랄하다는 점이다
data.to_sql(name=table, con=engine, if_exists='append', index=False)
print("Saved successfully!! \n Connection is Terminated")
conn.close()