사용자 도구


MySQL

데이터베이터 구축을 위한 프로그램

설치

$ sudo apt-get install mysql-server

tasksel을 이용하여 lamp를 설치하여도 된다.

설정

MySQL 설정파일 : /etc/mysql/my.cnf

MySQL 콘솔을 실행하려면 아래 명령을 이용한다.

$ mysql

root 권한으로 실행하려면 아래와 같이 실행한다.

$ mysql -u root -p

데이터베이스 생성

다음 명령은 mysql 접속 후 test라는 데이터베이스를 생성한다.

$ mysql -uroot -p // 이후 비밀번호 입력
mysql> create database test;

mysql에 접속하지 않고 커맨드라인에서 바로 데이터베이스를 생성할 수도 있다.

$ mysql -uroot -p -Bse 'create database test'

SQL file import

다음 명령은 test-20141027.sql 파일을 test 데이터베이스로 import 한다.

$ mysql -uroot -p -h localhost test < test-20141027.sql

test라는 데이터베이스가 없으면 에러가 나므로 주의한다. -h localhost는 로컬의 MySQL에 접속한다는 의미로 생략하여도 된다. 만약 외부의 MySQL 서버에서 import하려면 localhost 대신 해당 서버의 도메인 네임 또는 ip를 입력한다.

phpMyAdmin 설치

웹페이지에서 MySQL을 관리하기 위한 프로그램이다. 설치는 아래와 같이 한다.

$ sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
  • 설치 중간 웹서버는 apache2 선택
  • 데이터베이스를 dbconfig-common으로 설정할지 묻는 화면에서 예 선택
  • 웹브라우저에서 주소창에 localhost/phpmyadmin 입력하여 확인

MySQL 외부 접속

MySQL은 기본적으로 외부 접속을 허용하지 않는다. 외부 접속이 가능하기 위해서는 아래와 같이 설정 파일을 수정해야 한다.

$ sudo vim /etc/mysql/my.cnf

아래의 bind-address 부분을 주석처리 한다.

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address       = 127.0.0.1

설정을 반영하기 위해 mysql 서버를 재시작한다.

$ sudo /etc/init.d/mysql restart

문제 해결

InnoDB: Unable to lock ./ibdata1, error: 11

MySQL을 시작하려 했더니 시작이 안되고 /var/log/mysql 폴더의 로그를 확인하니 위 메시지가 나타난 경우 다음 작업 수행.

다음 명령으로 mysql 프로세스 번호 확인 (예: 2704)

$ lsof -i TCP:3306

위에서 알아낸 pid 번호로 /var/lib/mysql/{honemame}.pid 파일을 생성

$ echo 2704 > /var/lib/mysql/myhost.pid

owner 를 mysql 계정으로 변경

$ chown mysql:mysql /var/lib/mysql/myhost.pid

그 후 mysql 서비스를 재시작하여 본다. 그래도 시작되지 않으면 다음 명령으로 모든 mysql 데몬을 중지 후 재시작해본다.

$ killall mysqld

다음 명령으로 프로세스를 중지할 수도 있다.

$ kill -9 <pid>

참고