[작은또치]님이
남기신 글:
>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션) :
>- 커널버전(옵션)
:
>- 데몬버전(예:apache
1.3.27) :
>- 데몬설치유형(RPM/컴파일/기타)
:
>-----------------------------------------
>안녕 하세요. 문의 사항이 있습니다.
>
>mysql 3.23.57 => 4.0.24 업그레이드 중에
>
>ERROR 입니다.
>
>/usr/local/mysql/bin/mysql_fix_privilege_tables 루트패스워드
>
>This scripts updates the mysql.user, mysql.db, mysql.host and the
>mysql.func tables to MySQL 3.22.14 and above.
>
>This is needed if you want to use the new GRANT functions,
>CREATE AGGREGATE FUNCTION or want to use the more secure passwords in
3.23
>
>If you get 'Access denied' errors, you should run this script again
>and give the MySQL root user password as an argument!
>Converting all privilege tables to MyISAM format
>
>If your tables are already up to date or partially up to date you will
>get some warnings about 'Duplicated column name'. You can safely ignore
these!
>ERROR 1060 at line 2: Duplicate column name 'File_priv'
>
>Creating Grant Alter and Index privileges if they don't exists
>You can ignore any Duplicate column errors
>ERROR 1060 at line 1: Duplicate column name 'Grant_priv'
>ERROR 1060 at line 2: Duplicate column name 'Grant_priv'
>ERROR 1060 at line 3: Duplicate column name 'Grant_priv'
>
>Setting default privileges for the new grant, index and alter
privileges
>
>Adding columns needed by GRANT .. REQUIRE (openssl)
>You can ignore any Duplicate column errors
>ERROR 1060 at line 1: Duplicate column name 'ssl_type'
>
>Creating the new table and column privilege tables
>Changing name of columns_priv.Type -> columns_priv.Column_priv
>You can ignore any Unknown column errors from this
>ERROR 1054 at line 1: Unknown column 'Type' in 'columns_priv'
>
>Fixing the func table
>You can ignore any Duplicate column errors
>ERROR 1060 at line 1: Duplicate column name 'type'
>
>Adding new fields used by MySQL 4.0.2 to the privilege tables
>You can ignore any Duplicate column errors
>ERROR 1060 at line 1: Duplicate column name 'Show_db_priv'
>
>Updating new privileges in MySQL 4.0.2 from old ones
>
>ERROR 1060 at line 1: Duplicate column name 'max_questions'
>ERROR 1060 at line 1: Duplicate column name 'Create_tmp_table_priv'
>ERROR 1060 at line 4: Duplicate column name 'Create_tmp_table_priv'
>ERROR 1061 at line 5: Duplicate key name 'Grantor'
>
>???????????????????????????????????????????????????????????????????
>
>사용상에 문제가 있나요?
========================================
새로 설치된 mysql_fix_privilege_tables 이것을 실행해야 합니다.
새로 설치된 mysql DB 로 들어가서 user, db, host, func 테이블
구조흘 확인해 보세요.
mysql 4.0.x
mysql.* : 총 6개의 테이블
user : 31개의 컬럼
db : 15개의 컬럼
host : 14개의 컬럼
func : 4개의 컬럼
이와 같지 않다면 4.0.x 구조가 아닙니다.
권장방법:
1. 기존의 mysql.* 내용을 dump 함
2. 새로 설치하고, 설치소스에서 mysql_install_db 를 실행하지
않았다면
새로운 mysql_install_db 를 실행해서 mysql DB 를 4.0.x 로 설치합니다.
3. 새로운 mysql DB 로 접속해서(아마 암호가 없음) dump 한 내용을
보고 하나씩 수동으로 권한을 설정함
...
그외방법(보통 이 방법을 사용함):
1. 새로 설치하고, mysqld 를 구동할때, 예전의 DB data가 쌓이는
디렉토리로 지정해서 구동함.
2. 새로설치한
- mysql_fix_privilege_tables <암호>
- mysql_convert_table_format <DB명>
이 두개의 스크립트를 실행하고 mysqld 를 restart 함
3. 접속테스트
....
참고)
[mysql] upgrading from 3.23.x to 4.0.x
http://linuxchannel.net/board/read.php?table=alpha&no=28
|