티스토리 뷰

Linux

Shell Script를 이용한 MySql 설치

naleejang 2013. 3. 19. 00:57

나는 Ubuntu 리눅스를 사용한다. 그런데 Ubuntu에서 MySql를 설치하려고 하면 자꾸 중간에 Password를 설정하라고 하는 창이 뜬다. 패스워드를 중간에 설정하지 않고 그냥 바로 설치할 수 있는 방법은 없을까?


DevStack Shell Script 로 오픈스택를 설치할때 MySql를 설치하는 과정이 나오는데 그때는 Password를 묻지 않는다. 그래서 이번에는 DevStack Shell Script를 활용하여 Mysql만 설치하는 Shell Script만 만들어 보았다. 


아래 보이는 가장 첫번째 빨간색 주석 밑에 있는 내용이 가장 중요하다. 그 부분으로 인해 Mysql 설치시 Password를 묻지 않는다.

echo "Install MySQL"

 

# MySql 설치시 Password 없이 설치하기 위하여 미리 Mysql에 사용할 Password로 미리 설정한다.

cat <<MYSQL_PRESEED | sudo debconf-set-selections

mysql-server-5.1 mysql-server/root_password password $MYSQL_PASSWORD

mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASSWORD

mysql-server-5.1 mysql-server/start_on_boot boolean true

MYSQL_PRESEED

 

# Mysql 설치시 그리고 환경설정시 Mysql에 로그인을 위해 미리 Mysql 정보를 저장한다.

if [[ ! -e $HOME/.my.cnf ]]; then

    cat <<EOF >$HOME/.my.cnf

[client]

user=$MYSQL_USER

password=$MYSQL_PASSWORD

host=$MYSQL_HOST

EOF

    chmod 0600 $HOME/.my.cnf

fi

 

# Install mysql-server

sudo apt-get update

sudo apt-get install mysql-server



그럼 이번에는 로그인할 사용자와 패스워드 그리고, 외부에서 접근이 가능하도록 설정해 보자.

echo "Configuring and starting MySQL"

 

MY_CONF=/etc/mysql/my.cnf

MYSQL=mysql

 

# 미리 설정해 둔 사용자 ID와 Password로 사용자를 생성하고 권한을 준다.

sudo mysql -uroot -p$MYSQL_PASSWORD -h127.0.0.1 -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASSWORD';"

 

# 로컬호스트에서만 접속한 Mysql 환경설정을 모든 호스트에 접속가능하도록 Conf 파일을 설정한다.

sudo sed -i '/^bind-address/s/127.0.0.1/0.0.0.0/g' $MY_CONF

 

# 디폴트 DB 타입을 InnoDB로 설정한다. 

if sudo grep -q "default-storage-engine" $MY_CONF; then

    # Change it

    sudo bash -c "source $TOP_DIR/functions; iniset $MY_CONF mysqld default-storage-engine InnoDB"

else

    # Add it

    sudo sed -i -e "/^\[mysqld\]/ a \

default-storage-engine = InnoDB" $MY_CONF

fi

 

# 환경설정이 끝나면 Mysql를 재시작한다.

echo "Restring MySQL"

sudo /usr/sbin/service mysql restart


한번 테스트로 MySql를 설치해 보고 싶은 사람들은 아래 파일을 다운로드 받아 실행모드로 변경한 후 Shell Script를 실행하면 Mysql 서버를 바로 설치할 수 있을 것이다.



install_mysql.sh



최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함