[MySQL] mysql shell(mysqlsh) 설치 및 사용방법
- Databases/MySQL
- 2021. 2. 17.
■ 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모드에서 수행하기를 추천드립니다.
※도움이 되셨다면 광고클릭 한번 부탁드립니다.※
'Databases > MySQL' 카테고리의 다른 글
[MySQL] 임시 테이블(CREATE TEMPORARY TABLE) (0) | 2021.02.27 |
---|---|
[MySQL][InnoDB] 디스크 I/O와 파일공간 관리 (0) | 2021.02.25 |
[MySQL] Sys Schema (0) | 2021.02.14 |
[MySQL] Replication 및 AUTO_INCREMENT (0) | 2021.02.14 |
[MySQL] Replication 및 max_allow_packet (0) | 2021.02.14 |