강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
MYSQL파워강좌 . mysql 4편
조회 : 7,380  


MYSQL파워강좌 . mysql 4

 

 

 

 

ㅇ 제작자 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 성수

 

ㅇ 본강좌의 자세한 정보 : http://www.superuser.co.kr/linuxcommandbible/

 

 

 

----------------------                          --------------------------------

 

1  : MYSQL 클라이언트명령어 mysql 사용법

2  : MYSQL 데이터베이스의 실행(기동) 실행확인

3  : MYSQL root 데이터베이스로 접속하기

4  : MYSQL 일반사용자로 데이터베이스 접속하기

5  : MYSQL 접속시 MYSQL계정과 계정패스워드 지정하여 자동접속하기

6  : MYSQL 소켓파일 위치 지정하여 접속하기

7  : MYSQL서버시 접속포트 지정하여 접속하기

8  : 원격서버의 MYSQL 접속하기

9 : 리눅스 쉘상태에서 특정파일에 저장된 SQL 실행하기 : 데이터베이스생성 (mysql 응용편 #1)

10  : 리눅스 쉘상태에서 특정파일에 저장된 SQL 실행하기 : 호스팅사용자를 위한 DB,사용자등 생성하기 (mysql 응용편 #2)

11  : 리눅스 쉘상태에서 특정파일에 저장된 SQL 실행하기 : 테이블생성 (mysql 응용편 #3)

12  : MYSQL 일반사용자를 위한 명령어 PATH설정하기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12 : MYSQL 일반사용자를 위한 명령어 PATH설정하기

리눅스 쉘상태에서 mysql이라는 MYSQL클라이언트를 이용하여 MYSQL에 접속하려고 할 때에 mysql의 경로가 올바르지않다라는 에러메시지와 함께 실행이 되지않는 경우가 있습니다.

흔히 리눅스서버에 MYSQL을 소스컴파일하여 설치하고 호스팅서버로 사용하고 있는 경우,  서비스 초기에 이런 문제가 종종 발생할 수 있습니다.

예를 들어 sspark이라는 계정사용자가 리눅스 쉘상태에서 MYSQL로 접속하기 위하여 아래와 같이 “mysql -u root -p sspark”이라는 명령어를 사용했을 때의 예입니다.

[sspark@file sspark]$ pwd

/home/sspark

[sspark@file sspark]$

[sspark@file sspark]$ id

uid=501(sspark) gid=501(sspark) groups=501(sspark),5(tty)

[sspark@file sspark]$
[sspark@file sspark]$ mysql -u sspark -p sspark

-bash: mysql: command not found

[sspark@file sspark]$  

위의 경우 mysql클라이언트 명령어의 패스(PATH)가 잡혀있지 않았으므로 위와 같이“command not found”라는 에러메시지와 함께 실행이 되지 않은 것입니다. 물론 위와 같은 경우 MYSQL의 클라이언트인 mysql의 위치를 알고 있다면 다음과 같이 절대경로를 이용하여 접속을 할 수 있을 것입니다.

[root@file sspark]$ /usr/local/mysql/bin/mysql -u sspark -p sspark

Enter password: ********

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 1 to server version: 4.0.14

 

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

 

mysql>

하지만 일반사용자의 경우에는 MYSQL이 설치되어있는 위치를 정확하게 알고 있지 못하는 경우가 많고 또한 알고있다 하더라도 위와 같이 절대경로를 모두 지정하여 실행한다는 것은  여간 귀찮은 일이 아닐 수 없을 것입니다. 따라서 절대경로 지정없이 “mysql -u sspark -p sspark”과 같이 바로 사용할 수 있는 환경을 제공하는 것이 서버관리자의 역할이라고 할 수 있을 것입니다.

결론부터 말씀드린다면 mysql의 명령어 경로(PATH)를 일반사용자들이 사용할 수 있도록 설정해야한다는 것입니다.

이를 해결하는 방법에는 두가지 방법이 있습니다.

 

첫번째 방법 : mysql 심볼릭 링크파일을 사용하는 방법

 

가장 간단하고 가장 많이 사용되고있는 간편한 방법입니다. , 일반사용자들에게는 기본적으로 /usr/bin이라는 서버 실행명령어들의 경로가 설정되어 있습니다. 따라서 /usr/bin mysql이라는 심볼릭링크 파일을 하나 만들어서 이 링크파일이 /usr/local/mysql/bin/mysql를 가리키도록 생성하면 간단히 해결 할 수 있습니다.

 

이를 해결하기 위하여 아래에서는 /usr/bin/ 디렉토리에 심볼릭 링크파일을 생성한 실제 예를 보인 것입니다. 이 디렉토리(/usr/bin/)는 일반사용자들의 서버관련 명령어를 사용하는 기본 경로(PATH)이기 때문에 이 디렉토리 내에 있는 명령어들은 절대경로 지정없이 어디서든 바로 실행이 가능하도록 되어 있습니다.

 

[root@file bin]# pwd

/usr/bin

[root@file bin]#

[root@file bin]# ln -s /usr/local/mysql/bin/mysql mysql

[root@file bin]#

[root@file bin]# ls -l mysql

lrwxrwxrwx    1 root     root   26  2 16 22:29 mysql -> /usr/local/mysql/bin/mysql

[root@file bin]#

 

위의 예는 /usr/bin/ 디렉토리에서 ln이라는 명령어를 사용하여 /usr/local/mysql/bin/mysql로 링크가 된 mysql 이라는 파일을 생성한 것입니다.  그리고 ls로 생성된 링크파일을 확인한 것입니다.

 

이런 설정이 되어 있다면 이제부터는 일반사용자들도 어디서든 mysql 실행이 가능하게 됩니다. 아래의 예는 앞에서 실패했던 sspark일반사용자의 mysql사용 예를 보인 것입니다.

 

[sspark@file sspark]$ pwd

/home/sspark

[sspark@file sspark]$

[sspark@file sspark]$ id

uid=501(sspark) gid=501(sspark) groups=501(sspark),5(tty)

[sspark@file sspark]$
[sspark@file sspark]$ mysql -u sspark -p sspark

Enter password: ********

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 1 to server version: 4.0.14

 

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

 

mysql>

 

참고로 mysql과 함께 mysqldump라는 명령어로 이와 같은 방법으로 링크파일을 생성해 주시면 일반사용자의 MYSQL 데이터백업시에 매우 유용하게 사용할 수 있습니다.

 

두번째 방법 : 계정생성시 mysql절대경로를 PATH에 추가되도록 설정하는 방법

두번째 방법은 일반사용자의 계정을 생성할 때에 /usr/local/mysql/bin/ 디렉토리의 경로를 기본 PATH로 설정되도록 하는 것입니다. 앞의 방법보다는 다소 어렵다고는 할 수 있으나 한번 설정해 두면 새로 생성되는 모든 사용자들에게 적용이 되므로 설정 이후에 신경쓸 일이 없다는 것이 큰 장점이 될 수 있습니다. 또한 mysql외에 mysqldump등과 같은 명령어도 동일하게 적용이 되므로 더욱 편리하다고 할 수 있습니다.

, useradd명령어로 일반사용자 계정을 생성하면 생성된 일반 계정사용자의 홈 디렉토리에는 /etc/skel/에 존재하는 파일들이 모두 초기환경설정을 위해서 복사가 됩니다. 이때 .bash_profile이라는 파일도 함께 복사가 되는데 이 파일은 초기 일반사용자들의 명령어 사용 경로(PATH)가 설정되어 있습니다. 이 경로에 mysql을 실행시킬 수 있는 경로를 추가 설정해 두는 것입니다.  이렇게 설정해 두면 이후 생성되는 모든 사용자들에게 .bash_profile내의 PATH(경로)가 적용되므로 mysql사용을 절대경로 지정없이 어디서든 사용할 수 있게 될 것입니다.

아래의 예는 /etc/skel/.bash_profile 파일에 “/usr/local/mysql/bin”경로를 추가로 설정한 후의 파일 내용입니다.

[root@file skel]# cat .bash_profile
# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
 
PATH1=$PATH:$HOME/bin                       <-
설정부분
PATH=$PATH1:/usr/local/mysql/bin            <-
설정부분
BASH_ENV=$HOME/.bashrc
USERNAME=""
 
export USERNAME BASH_ENV PATH1 PATH         <-
설정부분
[root@file skel]#

 

이렇게 설정해 두면 새로운 사용자를 생성할 때마다 사용자에게 mysql의 실행경로가 PATH에 추가되어 있으므로 절대경로 지정없이 바로 사용이 가능합니다. 그리고 앞서 말씀드린바와 같이 mysql뿐아니라 mysqldump등과 같은 백업유틸리티도 모두 적용이 됩니다. /usr/local/mysql/bin/디렉토리에 존재하는 모든 유틸리티가 동일하게 적용된다는 의미입니다.

 

, 이렇게 mysql에 대하여 실무사례를 중심으로 설명을 하였습니다. 처음 의도보다는 좀 더 많은 지면이 필요 하였습니다. 여러분들의 서버관리에 얼마나 도움될 수 있을까를 기대하면서 작은 설레임을 가져봅니다. 이제 필자는 mysql에 대한 의무를 다하였다는 작은 안도감을 가지고 갑니다. 실무적인 활용은 여러분들의 몫으로 남겨도 좋을 것 같습니다.

 

 

 

ㅇ 제작자 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 성수

 

ㅇ 본강좌의 자세한 정보 : http://www.superuser.co.kr/linuxcommandbible/

 

 

 


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1369


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수