mysql -h <엔드포인트> -P <포트> -u <마스터사용자 이름> -p
source </path/filename.sql>
\. </path/filename.sql>
\. <filename.sql>
현재 폴더에 파일이 있는 경우 mysql -u username -p dbname < </path/filename.sql>
mysqldump -u username -p dbname > filename.sql
mysqldump -u username -p --all-databases > filename.sql
mysqldump --set-gtid-purged=OFF -h hostname -P port -u username -p dbname > filename.sql
mysqldump -u username -p dbname tbname > filename.sql
mysqldump -d -u usernaame -p dbname > backup.sql
mysqldump -d -u usernaame -p dbname tbname > backup.sql
설치
% pip install mysql-connector-python
실행
import mysql.connector
MySQL 접속 코드 실행
db = mysql.connector.connect(host = '', user = '', password = '', ...)
db.close()
* 로컬일 경우 : host = 'localhost'
쿼리 실행
cursor = db.cursor()
db.cursor(buffered=True)
: 데이터를 읽을 때(용량이 필요할 때)db.cursor(dictionary=True)
: 컬럼 명을 함께 불러 올 때 cursor.execute('query')
SQL 파일 실행
sql = open('filename.sql').read()
cursor.execute(sql)
[파일 내 SQL query가 여러개인 경우]
sql = open('filename.sql').read()
cursor.execute(sql, multi=True)
sql = open('filename.sql').read()
for result_iterator in cur.execute(sql, multi=True):
if result_iterator.with_rows:
print(result_iterator.fetchall())
else:
print(result_iterator.statement)
db.commit()
SQL 파일 실행(데이터 불러오기)
fetchall
query 실행에 따라 데이터를 불러올 경우 데이터를 변수에 담아주는 함수
cur = remote.cursor(buffered=True)
( buffered : 데이터 양이 많은 경우 설정하는 옵션
cur.execute('query')
result = cur.fetchall()
[데이터 프레임으로 읽기]
pd.DataFrame(result)
commit
실행문
sql = 'insert into tb values (%s, %s)'
for i, row in df.iterrows():
cur.execute(sql, tuple(row))
print(tuple(row))
conn.commit()