MySQL 구성/관리등을 편리하게 해 주기 위해서 MySQL shell이 나왔는데, 주요 특징은 아래와 같습니다.
[특징]
1. Auto completion
2. APIs : javascript and python
1) X devApi : api를 통해 json 및 rdbms 관리
2) AdminApi : innodb cluster 구성
3. Batch code execution
4. command history
5. global variables
1) session
2) db : schema
3) dba : innodb cluster 구성/관리
4) shell
5) util : load/dump등과 같은 유틸리티 함수
6. upgrade checker : mysql 8.0으로 upgrade가 가능한지 체크
[사용]
1. shell
mysqlsh --user root --host localhost --sql # ssl : --ssl-mode=REQUIRED
or
mysqlsh --url root@localhost:33060/world --sql
Py> \option --persist history.autoSave = true
Py> shell.list_credentials() # 기존 패스워드를 지울때 shell.delete_credentials(~~)
2. py
mysql_con = mysqlx.get_session('root@localhost:33060', 'test');
print(mysql_conn)
or
mysql_class_conn = mysql.get_classic_session('root@localhost:3306', 'test');
print(mysql_class_conn)
#python 연결. (x devapi를 사용하는 것으로 33060 포트를 사용해야 함)
import mysqlx
m_s1 = mysqlx.get_session({'host' : 'localhost', 'port' : 33060, 'user' : 'root', 'password' : 'test'})
m_s2 = mysqlx.get_session('root:test@localhost:33060')
#python script 실행
mysqlsh --py -f test.py
#python script (test.py)
from mysqlsh import mysqlx
my_session = mysqlx.get_session('root:test@localhost:33060')
my_session.drop_schema('test')
my_db = my_session.create_schema('test')
sql_res = my_session.sql(CREATE_TBL).execute()
my_tbl = my_db.get_table('sensor_device')
my_tbl.insert(COLUMNS).values('place1', 32.4, 'Celsius').execute()
my_tbl.update().set('sensor_units', 'degree').where('sensor_value LIKE 32.4').execute()
my_res = my_tbl.select(COLUMNS).execute()
'RDB > MySQL' 카테고리의 다른 글
MySQL Performance 스키마 (0) | 2023.01.27 |
---|---|
Unused indexes 확인 (0) | 2022.12.30 |
MySQL and Python 코드 (0) | 2022.12.12 |
mysql download (0) | 2022.12.12 |
mysql rebuild index (0) | 2022.12.05 |