최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

mySQL설치를 위한 내용은 생략. (대략 다운로드 후에 --prefix 같은 명령어로 폴더를 지정해주며, 컴파일이 필요함, 지지고볶고..)

 

사실 포맷하면서 주 사용 용도를 서버용도에 체크를 하고, 옵션에서 mySQL설치에 체크하여 기본적으로 설치를 했을테고

 

또 굳이 거기서 체크를 하지않을 이유도 없고...하여 설치확인만 간단히 짚어본후에 기본 실행을 알아보자.

 


 

1. 설치확인

[root@localhot]# rpm -q mysql

mysql -5.0.77-4.el5_6.6

 

버전이뜬다..

 

# whereis mysql   해보면

mysql: /usr/bin/mysql    /usr/lib/mysql     /usr/share/mysql     /usr/share/man/man1/mysql.1.gz

 

저렇게 폴더에 다 들어있고..

 

2. mySQL의 기본 (눈으로만)

 

"mysql" 명령어를 실행하여 "mysql>" 쉘을 띄운뒤

 

mysql> show databases;     

 

(만약 암호가 설정되어 있다면) # mysql -u root -p

 

과 같이 ;(세미콜론)을 반드시 포함하여 명령하며, 종료 할 때에는

 

mysql> quit

Bye

 

로 빠져나가는것 까지가 기본이다.

 

......라고 하지만 습관적으로 아래와 같은 실수가 잦은편이다.

 

mysql> ls             와 같이 습관적으로 List같은 리눅스 명령어를 적으면

       ->                 이렇게만 뜨고 아무 반응이 없다..

       -> quit          를 쳐도 먹통.

       -> ;               그럴땐 종료 세미콜론을 쳐서 일부터 문법오류를 내면

ERROR 1064 (42000) : You have an error in yout SQL syntax; check the manual that corresponds to your MySQL server version for

the right syntax to use near'ls quit' at line 1

mysql>

 

이렇게 다시 쉘로 돌아옴 -_-..

mysql> quit        냅다 종료!

 

3. mySQL 접속하기

 

자 그럼 mysql을 root 유저의 password를 부여하여 실행해보자.

 

원래 데이터베이스 접속 명령은 아래와 같으나

# mysql -u 사용자명 -p 데이터베이스이름     ex)# mysql -u home -p homedata

 

최초에 설치 직후 접속은 password가 없으니 아래처럼 입력한다.

# mysql -u root mysql

can't connect to local MySQL server through socket  '/var/lib/mysql/mysql.sock' (2)

 

와 같은 에러를 만나게 될 것이다.

 

mySQL은 설치만 하면 끝나는 것이 아니라 데몬을 활성화 시켜 주어야 한다.

 

에러에 보이는 mysql.sock파일은 mysql데몬이 활성화 되야 /var/lib/mysql 경로에 소켓이 생성된다.

 

그럼 아래의 명령어인 sql데몬 명령어를 실행!

 

# service mysqld start

Timeout error occurred trying to start MySQL Daemon.

 

이라는 에러가 뜬다 -_-;;

 

에러 log를(기록)을 확인하려면

 

/var/log/mysqld.log

mysqld started
[Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
[Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
mysqld ended

 

이렇게 정확히 알 수 있다.

 

자, 위 두개의 에러(접속, 데몬)를 위해 선행되어야 할 작업은

 

# /usr/bin/mysql_install_db --user=mysql        

 

으로 mysql 권한 테이블을 생성 해준뒤, sql데몬을 스타트시킨다.

 

# service mysqld start

MySQL (을)를 시작 중 :   [  OK  ]

 

mySQL구동에 성공. 이제 mySQL에 비밀번호를 부여하자.

 

4. mySQL 비밀번호 부여

 

root계정에 암호가 지정 되어있지 않으므로 암호를 부여한다.

 

암호를 부여하는 방법은 3가지 정도가 있다.

 

1. mysqladmin이용.

$ mysqladmin -u root password 새비밀번호

 

2. mysql에 접속하여 sql의 쉘에서 update문 이용.

$ mysql -u root mysql

mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
mysql> FLUSH PRIVILEGES;

 

3. Set Password 이용.

$ mysql -u root mysql
mysql> SET PASSWORD FOR root=password('새비밀번호');

 

이렇게 비밀번호가 설정되면, 반드시 -p 옵션을 넣어주고 연결해야한다.

# mysql -p  (같은표현 # mysql -u root -p)

Enter password:

Welcom to the MySQL monitor. Commands end with ; or \g.

Yout MySQL connection id is 17

Server version: 5.0.77 Source distribution

 

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

 

mysql>

 

4-2. 비밀번호를 까먹었을때 (뜨아..)

 

1. 일단 mysql 정지.

 

[root@localhost ~]# service mysqld stop
Stopping MySQL:    [  OK  ]

 

2. mysqld_safe 실행

 

위치 확인

[root@localhost ~]# which mysqld_safe
/usr/bin/mysqld_safe

 

실행 : 로컬에서는 별도 인증 없이 mysql의 root 권한을 사용가능하게 한다. 비번없이 그냥 접속된다는 뜻.

[root@localhost ~]# /usr/bin/mysqld_safe --skip-grant &
[1] 32055
Starting mysqld daemon with databases from /var/lib/mysql

 

이제 비밀번호 없이 접속할 수 있게되었다. 다음으로 접속 해 보자.

# /usr/bin/mysql -u root mysql

 

mySQL에서는 다음 SQL 명령어를 입력하여 원하는 패스워드로 변경한다.

mysql> update user set password=password('패스워드') where user='root';
mysql> flush privileges;
mysql> quit

 

종료후 쉘로 돌아오면 패스워드를 입력해야만 mysql을 사용할 수 있도록 하기 위해, mysqld를 재시작한다.

[root@localhost ~]# service mysqld restart

 

mysql로그인

[root@localhost~]# mysql -p

Enter password :      암호를 입력하면

mysql>  접속 성공

 

5. mySQL 데이터베이스 확인

 

우여곡절끝에 mysql> 을 띄운당신...ㅠㅠ...

 

데이터베이스를 확인해보자!

 

msql> show databases;

+-------------------+

| Database               |

+-------------------+

| information_schema |

| mysql                    |

| test                        |

+-------------------+

3 rows in set (0,00 sec)

 

mysql>

 

나도이제부터 서버관리자 (.....)

 

참고로 눈에 보이는 저 mysql은 각 계정의 패스워드와 퍼미션(권한)을 부여하는 곳이므로 주의하자.

 

test 라고 보이는 곳은 temporary한 DB이다.

다음번에는 mySQL에 DB를 생성하고 최종적으로는 간단한 php 프로그램을 작성하여 DB입력,출력,수정,삭제를 목표로.

댓글