MySQL강좌4편:MYSQL 접속시 MYSQL계정과 계정패스워드 지정하여 자동접속하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 5,451 조회
- 0 추천
- 목록
본문
MySQL강좌4편:MYSQL 접속시 MYSQL계정과 계정패스워드 지정하여 자동접속하기
일반적인 MYSQL접속방법은 리눅스 쉘상태에서 mysql클라이언트를 실행한 후에 “Enter password: ”라는 프롬프트가 나오면 패스워드를 입력한 후에 접속하였다. 이번에는 쉘상태에서 mysql클라이언트를 실행하는 명령행에서 MYSQL사용자명과 패스워드를 동시에 지정하여 바로 접속하는 방법을 알아보도록 하겠다. 뒤에서 설명할 MYSQL백업편에서도 설명하겠지만 이와 같은 방법은 MYSQL데이터를 백업하거나 쉘프로그램에서 MYSQL 사용을 자동화하기 위하여 주로 사용하는 방법이다.
사용형식 : mysql -u사용자명 -p’패스워드’접속할데이터베이스명
위의 예에서는 “-u사용자명”에서 사용자명은 영문자 -u뒤에 빈칸없이 붙여서 지정해야하며 패스워드 또한 영문자 -p뒤에 빈칸없이 ‘’으로 붙여야만 정상적으로 실행된다. 이점만 유념하면 별문제없이 자동접속할 수 있을 것이다.
아래의 예는 root계정으로 패스워드를 지정하여 mysql데이터베이스로 접속한 예이다. 설명하였듯이 root는 -u문자뒤에 가능한 빈칸없이 붙여서 입력하고(띄워도 됨) root의 패스워드인 11111111 또한 ‘’로 묶어서 -p문자뒤에 빈칸없이 붙여서 입력해야 한다.
[root@sulinux bin]#/usr/local/mysql/bin/mysql -u root -p'11111111' mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 5.1.32 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> mysql> exit Bye [root@sulinux bin]# |
위의 예와 같이 MYSQL의 root사용자는 mysql이라는 데이터베이스로 자동접속하기 위하여 root라는 계정명과 11111111이라는 패스워드를 쉘상태에서 지정한 것이다.
이번에는 일반계정사용자의 예를 보겠다. 일반사용자도 마찬가지로 -u옵션뒤에 사용할 MYSQL계정명과 -p뒤에 ‘’로 둘러 쌓인 패스워드를 빈칸없이 붙여서 사용하면 별도의 패스워드 입력단계를 생략하고 바로 접속이 이루어진다.
아래의 예는 picasso라는 MYSQL계정사용자가 자기가 사용하는 picasso_db라는 데이터베이스로 자동접속한 예로서 패스워드를 직접 쉘상태에서 지정한 예이다.
[root@sulinux bin]#/usr/local/mysql/bin/mysql -u picasso -p'11111111' picasso_db Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.1.32 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> mysql> exit Bye [root@sulinux bin]# |
이렇게 접속한 후에 ps명령어로 접속된 프로세스를 확인해보면 다음과 같다.
[root@sulinux ~]#ps -ef | grep mysql root 3770 2552 0 06:29 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe mysql 3860 3770 0 06:29 pts/0 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/sulinux.net.err --pid-file=/usr/local/mysql/data/sulinux.net.pid --socket=/tmp/mysql.sock --port=3306 root 3895 2552 0 06:40 pts/0 00:00:00/usr/local/mysql/bin/mysql -u picasso -px xxxxxx picasso_db root 3933 3899 0 06:40 pts/1 00:00:00 grep --colour=auto mysql [root@sulinux ~]# |
즉 패스워드부분이 “x”문자로 처리되어있다. 이는 리눅스 서버와 MYSQL의 보안을 위한 것이며 서버관리자들은 이 부분의 내용을 정확하게 확인하기 바란다.
단, 주의 할 것은 명령어 히스토리(history명령어 사용)에서는 사용한 명령어들이 모두 보이므로 주의해야 한다. 다음 예는 위의 명령어를 실행한 사용자의 history를 확인한 것으로서 “picasso”라는 문자열을 포함한 행들만을 출력한 것이다.
[root@sulinux bin]#history | grep picasso 1037 /usr/local/mysql/bin/mysql -u picasso -p picasso_db 1039 /usr/local/mysql/bin/mysql -u picasso -p'11111111' picasso_db 1041 /usr/local/mysql/bin/mysql -u picasso -p'11111111' picasso_db 1043 history | grep picasso [root@sulinux bin]# |
보다시피 자신의 history에는 패스워드를 포함한 사용한 모든 내역들이 보이므로 주의해야할 부분이다.
관련자료
-
이전
-
다음