[MySQL] mysql shell(mysqlsh) 설치 및 사용방법

■ MySQL Shell 설치

▶︎ 설치 방법

다운로드 URL

https://dev.mysql.com/downloads/shell/

OS 플랫폼에 맞는 버전을 다운로드합니다. 여기서는 CentOS 7 설치하는 방법을 알아봅니다..

 

위의 경로에 접속 Select Operating System Redhat Enterprise Linux / Oracle Linux 선택  

Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Package 8.0.23 31.6M

(mysql-shell-8.0.23-1.el7.x86_64.rpm)

다운로드 합니다. 그리고 아래와 같은 명령어로 설치합니다.

shell> yum install mysql-shell

 

▶︎ x protocol plug in 설치 방법(필요시)

플러그인 설치.

mysql> INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';

 

환경설정

my.cnf 다음의 환경정보를 입력합니다.

[mysqld]

mysqlx_ssl_ca=ca.pem

mysqlx_ssl_cert=server-cert.pem

mysqlx_ssl_key=server-key.pem

참고로 위의 환경설정에서 에러가 나오면 mysqlx 플러그인이 제대로 설치가 안된것입니다.

 

• SSL/TLS user 생성.

mysql> create user 'admin'@'localhost' identified by 'admin1234' require SSL;

 

 

▶︎ 실행방법

• shell에서 일반 접속 방법

shell> mysqlsh

 

일반 접속

 MySQL  JS > \connect root@localhost:3306

Creating a session to 'root@localhost:3306'
Please provide the password for 'root@localhost:3306': *********
Save password for 'root@localhost:3306'? [Y]es/[N]o/Ne[v]er (default No): n
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 9
Server version: 5.7.32 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  localhost:3306 ssl  JS > 
MySQL  JS > \connect --mysql root@localhost:3306

Creating a Classic session to 'root@localhost:3306'
Please provide the password for 'root@localhost:3306': *********
Save password for 'root@localhost:3306'? [Y]es/[N]o/Ne[v]er (default No): n
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 10
Server version: 5.7.32 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  localhost:3306 ssl  JS >

 

SSL/TLS, X506 접속

MySQL  JS > \connect --mysqlx root@localhost:33060

Creating an X protocol session to 'root@localhost:33060'
Please provide the password for 'root@localhost:33060': *********
Save password for 'root@localhost:33060'? [Y]es/[N]o/Ne[v]er (default No): n
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 12 (X protocol)
Server version: 5.7.32 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  localhost:33060+ ssl  JS >

 

• OS shell 에서 다이렉트 접속 방법.

일반 접속

shell> mysqlsh mysql://root@localhost:3306

mysqlsh mysql://root@localhost:3306
Please provide the password for 'root@localhost:3306': *********
Save password for 'root@localhost:3306'? [Y]es/[N]o/Ne[v]er (default No): n
MySQL Shell 8.0.23

Copyright (c) 2016, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating a Classic session to 'root@localhost:3306'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 3
Server version: 5.7.32 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  localhost:3306 ssl  JS >

 

SSL 접속

shell> mysqlsh mysqlx://admin@localhost:33060

mysqlsh mysqlx://admin@localhost:33060
Please provide the password for 'admin@localhost:33060': *********
Save password for 'admin@localhost:33060'? [Y]es/[N]o/Ne[v]er (default No): n
MySQL Shell 8.0.23

Copyright (c) 2016, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating an X protocol session to 'admin@localhost:33060'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 5 (X protocol)
Server version: 5.7.32 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  localhost:33060+ ssl  JS >

 

■ MySQL Shell 명령어.

https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-commands.html

Command Alias/Shortcut Description
\help \h or \? MySQL Shell 대한 도움말을 인쇄하거나 온라인 도움말을 검색하십시오.
\quit \q or \exit MySQL Shell 종료
\
SQL 모드에서 여러 모드를 시작합니다. 줄이 입력되면 코드가 캐시되고 실행됩니다.
\status \s 현재 MySQL Shell 상태를 출력합니다.
\js
실행 모드를 JavaScript 전환합니다.
\py
실행 모드를 Python으로 전환합니다.
\sql
실행 모드를 SQL 전환합니다.
\connect \c MySQL 인스턴스에 연결합니다.
\reconnect
동일한 MySQL 인스턴스에 다시 연결합니다.
\disconnect
글로벌 세션의 연결을 끊습니다.
\use \u 사용할 스키마를 지정하십시오.
\source \. or source (no backslash) 활성 언어를 사용하여 스크립트 파일을 실행합니다.
\warnings \W 명령문에서 생성 모든 경고를 표시합니다.
\nowarnings \w 명령문에서 생성 경고를 표시하지 않습니다.
\history
명령 기록을보고 편집합니다.
\rehash
자동 완성 이름 캐시를 수동으로 업데이트합니다.
\option
MySQL Shell 구성 옵션을 쿼리하고 변경합니다.
\show
제공된 옵션 인수를 사용하여 지정된 보고서를 실행합니다.
\watch
제공된 옵션 인수를 사용하여 지정된 보고서를 실행하고 정기적으로 결과를 새로 고칩니다.
\edit \e 기본 시스템 편집기에서 명령을 다음 MySQL Shell 표시합니다.
\pager \P MySQL Shell 텍스트를 표시하는 사용하는 호출기를 구성합니다.
\nopager
MySQL Shell 사용하도록 구성된 호출기를 비활성화합니다.
\system \! 지정된 운영 체제 명령을 실행하고 MySQL Shell 결과를 표시합니다.

 

 

 

 

사용 예제

위의 명령어들은 모두 mysqlsh JS 모드에서만 실행되는 명령입니다. mysqlshell 접속하는 순간 JS모드로 시작이 됩니다.

shell> mysqlsh 엔터

 

위와 같이 입력하면 다음과 같은 초기 화면이 나타납니다.

MySQL Shell 8.0.23


Copyright (c) 2016, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
 MySQL  JS > 

 

먼저 MySQL 접속합니다.

MySQL  JS > \connect root@localhost:3306

Creating a session to 'root@localhost:3306'
Please provide the password for 'root@localhost:3306': *********
Save password for 'root@localhost:3306'? [Y]es/[N]o/Ne[v]er (default No): n
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 14
Server version: 5.7.32 Source distribution
No default schema selected; type \use <schema> to set one.
 MySQL  localhost:3306 ssl  JS > 

 

명령어의 도움말을 보는 방법입니다. 

전체 도움말을 보는 방법은 \? 입니다.

명령어의 도움말을 보는 방법은 \? 명령어 입니다.

MySQL  localhost:3306 ssl  information_schema  JS > \?
MySQL  localhost:3306 ssl  information_schema  JS > \? show

 

예를 들어 Database 리스트 보는 명령입니다. \show query 먼저 입력한다음 show 명령어를 입력합니다.

MySQL Client의 show 명령어와 같습니다.

MySQL  localhost:3306 ssl  JS > \show query show databases

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
 MySQL  localhost:3306 ssl  JS > 

 

JS모드를 SQL모드로 바꿉니다. 이러면 기존 MySQL명령어를 이용해서 실행할 있습니다.

 MySQL  localhost:3306 ssl  JS > \sql

Switching to SQL mode... Commands end with ;
 MySQL  localhost:3306 ssl  SQL > show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.0007 sec)
 MySQL  localhost:3306 ssl  SQL > 

mysql  명령을 수행할때는 SQL모드에서 수행하기를 추천드립니다.

 

 

도움이 되셨다면 광고클릭 한번 부탁드립니다.

Designed by JB FACTORY