::: DATABASE :::/└ ::: MY SQL :::

My sql error

호딩이 2007. 1. 10. 17:49

ASIANUX에서 최초 MySQL Daemon을 아래의 명령어에 의해서 실행 시킬 경우,

다음과 같은 에러 메세지가 나타난다.


#mysqld_safe --user=mysql &


[root@tekstudio bin]# Starting mysqld daemon with databases from
/var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
050901 12:47:43  mysqld ended


[1]+  Done                    mysqld_safe --user=mysql


/var/log/mysqld.log에서 다음과 같은 내용을 확인 할 수 있다.

050901 10:58:29  mysqld started
050901 10:58:29  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
050901 10:58:29  InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 43634.
InnoDB: Doing recovery: scanned up to log sequence number 0 43634
050901 10:58:29  InnoDB: Flushing modified pages from the buffer pool...
050901 10:58:29  InnoDB: Started; log sequence number 0 43634
050901 10:58:29 [ERROR] Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
050901 10:58:29  mysqld ended


위의 에러 내용을 초기 Data Base Table이 생성되지 않아 생기는 문제로,
다음과 같이 해결 할 수 있다.


#cd /usr/bin/

#mysql_install_db 을 실행 한다.


/var/lib/mysql에 다음과 같이 새로운 Directory가 생성 된 것을 알 수 있다.


-rw-rw----   1 mysql mysql  5242880  9월  1 13:10 ib_logfile0
drwxr-xr-x   4 mysql mysql     4096  9월  1 13:10 .
srwxrwxrwx   1 mysql mysql        0  9월  1 13:10 mysql.sock
drwxr-xr-x  30 root  root      4096  9월  1 13:07 ..
drwx------   2 root root     4096  9월  1 12:47 mysql
drwx------   2 root root     4096  9월  1 12:47 test

-rw-rw----   1 mysql mysql 10485760  9월  1 10:15 ibdata1
-rw-r--r--   1 mysql mysql      140  9월  1 10:14 mysqld_multi.log
-rw-rw----   1 mysql mysql  5242880  9월  1 10:12 ib_logfile1

위의 작업으로 새로 생성된 Directory의 Owner를 root 에서 mysql로 다음의

명령어로 바꾸어 준다.

#chown -R mysql.mysql /var/lib/mysql

-rw-rw----   1 mysql mysql  5242880  9월  1 13:10 ib_logfile0
drwxr-xr-x   4 mysql mysql     4096  9월  1 13:10 .
srwxrwxrwx   1 mysql mysql        0  9월  1 13:10 mysql.sock
drwxr-xr-x  30 root  root      4096  9월  1 13:07 ..
drwx------   2 mysql mysql     4096  9월  1 12:47 mysql
drwx------   2 mysql mysql     4096  9월  1 12:47 test

-rw-rw----   1 mysql mysql 10485760  9월  1 10:15 ibdata1
-rw-r--r--   1 mysql mysql      140  9월  1 10:14 mysqld_multi.log
-rw-rw----   1 mysql mysql  5242880  9월  1 10:12 ib_logfile1

위의 작업이 완료 된 후 다음과 같은 명령어로 MySQL Daemon을 실행 시킨다.

#mysqld_safe --user=mysql &

위의 Command로 MySQl Daemon이 잘 동작하는지 확인 한 후

다음의 수순으로 root 계정의 password를 새로이 등록한다.

#/usr/bin/mysqladmin -u root password 'new-password'

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench'
directory:
cd sql-bench ; perl run-all-tests -pass password