목표: MySQL  바이너리 배포본을 /usr/local/mysql 에 설치하기.

1. http://www.mysql.com/ 에 방문하여 최신버전의 MySQL 바이너리 버전을 다운 받습니다.

화일명은 mysql_버전_운영체제_tar.gz입니다.

예) mysql-3_21_33c-pc-linux-gnu-i686_tar.gz


2. 다운 받은 화일을 FTP를 이용 여러분의 서버 /tmp 에 옮겨 놓구요
(임시로 저장하는 것이므로 당신이 원하는 아무 디렉토리도 상관없습니다.)


3. 확인. (화일크기는 좀 다를 수도 있음)

[/tmp]# ls -al my*
-rw-r--r--   1 root     root      3000463 Jan 25 15:26 mysql-3_21_33c-pc-linux-gnu-i686_tar.gz


4. 압축풀기

[/tmp]# zcat mysql-3_21_33c-pc-linux-gnu-i686_tar.gz  | tar xvf -


5. 풀린것을 /usr/local/mysql 로 이동시키기

[/tmp]# mv ./mysql-3.21.33c-pc-linux-gnu-i686/ /usr/local/mysql/


6. /usr/local/mysql 로 이동

[/tmp]# cd /usr/local/mysql/


7. /scripts/mysql_install_db 실행

한가지 주의 하실점은 반드시 /usr/local/mysql 에서 실행을 해야 한다는 겁니다. 아래의 메시지가 나오면 성공적으로 설치가 된 겁니다.

[mysql]# ./scripts/mysql_install_db
Starting mysql server
Starting mysqld demon with databases from /usr/local/mysql/data
mysqld demon is running and mysql grant tables are installed.

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

You can test the MySQL demon with the benchmarks in the 'bench'
directory:
cd bench ; run-all-tests

You can also try the mysql command line tool with:
./bin/mysql test

Plese report any problems with the ./bin/mysqlbug script!
The latest information about MySQL is available on the web at http://www.tcx.se

Have fun and at least consider supporting MySQL if you find it useful :)



8. MySQL 데몬 확인.

[mysql]# ps -x | grep mysql


9. 사용자 인증 테이블을 수정

bin 디렉토리 밑의 sql client인 mysql 을 이용해서 mysql 데이타 베이스를 사용니다.

사용방법 :  ./bin/mysql [OPTIONS] [database]

[mysql]# ./bin/mysql mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 3.21.33c-log

Type 'help' for help.
mysql>



10. 테이블확인(버전에 따라 더 있을 수도 있음)

mysql> show tables ;
+-----------------+
| Tables in mysql |
+-----------------+
| db              |
| func            |
| host            |
| user            |
+-----------------+

4 rows in set (0.00 sec)




11. user 테이블 구조를 확인(버전에 따라 다를 수도 있음)

mysql> desc user ;
+---------------+---------------+------+-----+---------+-------+
| Field         | Type          | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| Host          | char(60)      |      | PRI |         |       |
| User          | char(16)      |      | PRI |         |       |
| Password      | char(16)      |      |     |         |       |
| Select_priv   | enum('N','Y') |      |     | N       |       |
| Insert_priv   | enum('N','Y') |      |     | N       |       |
| Update_priv   | enum('N','Y') |      |     | N       |       |
| Delete_priv   | enum('N','Y') |      |     | N       |       |
| Create_priv   | enum('N','Y') |      |     | N       |       |
| Drop_priv     | enum('N','Y') |      |     | N       |       |
| Reload_priv   | enum('N','Y') |      |     | N       |       |
| Shutdown_priv | enum('N','Y') |      |     | N       |       |
| Process_priv  | enum('N','Y') |      |     | N       |       |
| File_priv     | enum('N','Y') |      |     | N       |       |
+---------------+---------------+------+-----+---------+-------+

13 rows in set (0.01 sec)



12. user 테이블의 사용자를 확인.

mysql> select * from user ;


13. 이제 user 라는 테이블에 새로운 사용자 mysql 을 추가하고 확인해 보세요. 역기서 추가하는 사용자는 시스템 사용자와는 전혀 관계없는 DB 사용자 입니다.
(버전에 따라 'Y'를 14개 넣어야 되는 경우도 있습니다)

mysql> insert into user values('localhost','mysql',password('abcd'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

Query OK, 1 row affected (0.01 sec)

mysql> select * from user ;


14. 이제는 꼭! mysql 데몬을 다시 띄워야 새로운 MySQL 유저 mysql이 사용 가능합니다.

mysql> \q
Bye
[mysql]# ./bin/mysqladmin reload
[mysql]#

15. 새로 등록된 사용자 mysql로 test DB를 사용하기

사용법 :  mysql -u사용자 -p암호 DB이름

[mysql]# ./bin/mysql -umysql -pabcd test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17 to server version: 3.21.33c-log

Type 'help' for help.


mysql> create table table01 ( id int , name char(10) ) ;
       
Query OK, 0 rows affected (0.09 sec)

mysql> insert into table01 values(1,'이영찬');
Query OK, 1 row affected (0.03 sec)

mysql> select * from table01 ;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 홍길동 |
+------+--------+

1 row in set (0.01 sec)

mysql>

16. MySQL 데몬을 띄우는 방법은 다음과 같습니다.

자동으로 띄우고 싶으면 /etc/rc.d/rc.local 화일에 아래부분을 추가 하면 됩니다.

# cd /usr/local/mysql
# ./bin/safe_mysqld &


17. 위의 과정이 정상적으로 되면 설치성공!