"Bash에서 MySQL 사용"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 9개는 보이지 않습니다)
1번째 줄: 1번째 줄:
;Bash에서 MySQL 접근
;Bash에서 MySQL 접근
;Bash에서 원격으로 MySQL 쿼리 수행
;Bash에서 원격으로 MySQL 쿼리 수행
;리눅스 쉘에서 MySQL 쿼리


==로컬==
==로컬==
;명령어
;명령어
<source lang='bash'>
<syntaxhighlight lang='bash'>
mysql -u아이디 -p패스워드 디비명 -e "쿼리문"
mysql -u아이디 -p패스워드 디비명 -e "쿼리문"
</syntaxhighlight>
<syntaxhighlight lang='bash'>
echo "쿼리문" | mysql -u아이디 -p패스워드 디비명
echo "쿼리문" | mysql -u아이디 -p패스워드 디비명
</source>
</syntaxhighlight>


;실행예시
;실행예시
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# mysql -uroot -pP@ssw0rd mysql -e "SHOW TABLES"
[root@zetawiki ~]# mysql -uroot -pP@ssw0rd mysql -e "SHOW TABLES"
+---------------------------+
+---------------------------+
| Tables_in_mysql          |
| Tables_in_mysql          |
20번째 줄: 23번째 줄:
| user                      |
| user                      |
+---------------------------+
+---------------------------+
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# echo "SHOW TABLES" | mysql -uroot -pP@ssw0rd mysql
[root@zetawiki ~]# echo "SHOW TABLES" | mysql -uroot -pP@ssw0rd mysql
Tables_in_mysql
Tables_in_mysql
columns_priv
columns_priv
28번째 줄: 31번째 줄:
... (생략)
... (생략)
user
user
</source>
</syntaxhighlight>


==원격==
==원격==
;명령어
;명령어
<source lang='bash'>
<syntaxhighlight lang='bash'>
mysql -h서버주소 -u아이디 -p패스워드 디비명 -e "쿼리문"
mysql -h서버주소 -u아이디 -p패스워드 디비명 -e "쿼리문"
</source>
</syntaxhighlight>


;실행예시
;실행예시
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@remote ~]# mysql -h111.222.33.44 -uroot -pP@ssw0rd mysql -e "SHOW TABLES"
[root@remote ~]# mysql -h111.222.33.44 -uroot -pP@ssw0rd mysql -e "SHOW TABLES"
+---------------------------+
+---------------------------+
48번째 줄: 51번째 줄:
| user                      |
| user                      |
+---------------------------+
+---------------------------+
</source>
</syntaxhighlight>


==여러 줄 입력==
==여러 줄 입력==
<source lang='bash'>
<syntaxhighlight lang='bash'>
mysql -u아이디 -p패스워드 디비명 <<QUERY
mysql -u아이디 -p패스워드 디비명 <<QUERY
쿼리문
쿼리문
QUERY
QUERY
</source>
</syntaxhighlight>


<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# mysql -uroot -pP@ssw0rd mysql <<QUERY
[root@zetawiki ~]# mysql -uroot -pP@ssw0rd mysql <<QUERY
> SHOW
> SHOW
> TABLES;
> TABLES;
67번째 줄: 70번째 줄:
.. (생략)
.. (생략)
user
user
</source>
</syntaxhighlight>
 
==출력형태==
;표(--table, -t, 기본값)
<source lang='dos'>
[root@jmnote ~]# mysql -uroot -pP@ssw0rd -e 'SHOW PROCESSLIST;'
+--------+------+-----------+------+---------+------+-------+------------------+
| Id    | User | Host      | db  | Command | Time | State | Info            |
+--------+------+-----------+------+---------+------+-------+------------------+
| 345227 | root | localhost | NULL | Query  |    0 | NULL  | SHOW PROCESSLIST |
+--------+------+-----------+------+---------+------+-------+------------------+
</source>
 
;배치(--batch, -B)
<source lang='dos'>
[root@jmnote ~]# mysql -uroot -pP@ssw0rd -e 'SHOW PROCESSLIST;' -B
Id User Host db Command Time State Info
345224 root localhost NULL Query 0 NULL SHOW PROCESSLIST
</source>
 
;html(--html, -H)
<source lang='dos'>
[root@jmnote ~]# mysql -uroot -pP@ssw0rd -e 'SHOW PROCESSLIST;' -H
<TABLE BORDER=1><TR><TH>Id</TH><TH>User</TH><TH>Host</TH><TH>db</TH><TH>Command</TH><TH>Time</TH><TH>State</TH><TH>Info</TH></TR><TR><TD>345240</TD><TD>root</TD><TD>localhost</TD><TD>NULL</TD><TD>Query</TD><TD>0</TD><TD>NULL</TD><TD>SHOW PROCESSLIST</TD></TR></TABLE>
</source>
 
;XML(--xml, -X)
<source lang='dos'>
[root@jmnote ~]# mysql -uroot -pP@ssw0rd -e 'SHOW PROCESSLIST;' -X
<?xml version="1.0"?>
 
<resultset statement="SHOW PROCESSLIST" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <row>
<field name="Id">345242</field>
<field name="User">root</field>
<field name="Host">localhost</field>
<field name="db" xsi:nil="true" />
<field name="Command">Query</field>
<field name="Time">0</field>
<field name="State" xsi:nil="true" />
<field name="Info">SHOW PROCESSLIST</field>
  </row>
</resultset>
</source>


==같이 보기==
==같이 보기==
*[[MySQL CLI 출력 형식 지정하기]]
*[[Backup.sh]]
*[[Backup.sh]]
*[[Bash용 mysql query 함수]]
*[[Bash용 mysql query 함수]]
*[[HEREDOC]]


==참고 자료==
==참고==
*http://www.linuxquestions.org/questions/linux-general-1/mysql-in-bash-script-916360/
*http://www.linuxquestions.org/questions/linux-general-1/mysql-in-bash-script-916360/
*http://stackoverflow.com/questions/3900496/using-shell-script-to-insert-data-into-remote-mysql-database
*http://stackoverflow.com/questions/3900496/using-shell-script-to-insert-data-into-remote-mysql-database

2021년 4월 13일 (화) 00:11 기준 최신판

Bash에서 MySQL 접근
Bash에서 원격으로 MySQL 쿼리 수행
리눅스 쉘에서 MySQL 쿼리

1 로컬[ | ]

명령어
mysql -u아이디 -p패스워드 디비명 -e "쿼리문"
echo "쿼리문" | mysql -u아이디 -p패스워드 디비명
실행예시
[root@zetawiki ~]# mysql -uroot -pP@ssw0rd mysql -e "SHOW TABLES"
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
... (생략)
| user                      |
+---------------------------+
[root@zetawiki ~]# echo "SHOW TABLES" | mysql -uroot -pP@ssw0rd mysql
Tables_in_mysql
columns_priv
db
... (생략)
user

2 원격[ | ]

명령어
mysql -h서버주소 -u아이디 -p패스워드 디비명 -e "쿼리문"
실행예시
[root@remote ~]# mysql -h111.222.33.44 -uroot -pP@ssw0rd mysql -e "SHOW TABLES"
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
... (생략)
| user                      |
+---------------------------+

3 여러 줄 입력[ | ]

mysql -u아이디 -p패스워드 디비명 <<QUERY
쿼리문
QUERY
[root@zetawiki ~]# mysql -uroot -pP@ssw0rd mysql <<QUERY
> SHOW
> TABLES;
> QUERY
Tables_in_mysql
columns_priv
db
.. (생략)
user

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}