2016-08-02 1 views
0

5.7.14에서 5.6.32로 mysql 서버를 다운 그레이드했습니다.다운 그레이드 후 mysql을 시작할 수없고, mysql_upgrade를 실행할 수없고, 루트 암호를 변경할 수 없습니다.

그렇게 한 후, 나는 건너 뛴 지침에 따라 mysql_upgrade를 실행해야한다고 생각했습니다.

그러나 이렇게하려면 루트 사용자/p를 제공해야합니다.

mysql_upgrade -u root -p

Enter password:

Looking for 'mysql' as: mysql

Looking for 'mysqlcheck' as: mysqlcheck

Error: Failed while fetching Server version! Could be due to unauthorized access.

FATAL ERROR: Upgrade failed

그래서 내가 좋아하는 뭔가가있는 init 파일을 생성하여 암호를 재설정하려고 시도 : 나는 그렇게 할 때 그러나, 사람들을 수용하지 않는 것 '루트'에 대한 암호 설정 @ 'localhost'= 패스워드 ('abcd1234'); mysqld_safe에 --init-파일을 호출 다음 =/가정/루트/mysql을 - 초기화 &

그러나 이것은 MySQL이 제대로 시작 및 오류가 발생 할 수 아마도 때문에 작동하지 않습니다.

0802 12:50:45 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

2016-08-02 12:50:46 0 [Warning] TIMESTAMP with implicit DEFAULT value is

2016-08-02 12:50:46 0 [Note] /usr/sbin/mysqld (mysqld 5.6.32) starting as process 2635 ...

2016-08-02 12:50:46 2635 [Note] Plugin 'FEDERATED' is disabled.

/usr/sbin/mysqld: Unknown storage engine 'InnoDB'

2016-08-02 12:50:46 2635 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

2016-08-02 12:50:46 2635 [Note] InnoDB: Using atomics to ref count buffer pool pages

2016-08-02 12:50:46 2635 [Note] InnoDB: The InnoDB memory heap is disabled

2016-08-02 12:50:46 2635 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

2016-08-02 12:50:46 2635 [Note] InnoDB: Memory barrier is not used

2016-08-02 12:50:46 2635 [Note] InnoDB: Compressed tables use zlib 1.2.3

2016-08-02 12:50:46 2635 [Note] InnoDB: Using Linux native AIO

2016-08-02 12:50:46 2635 [Note] InnoDB: Using CPU crc32 instructions

2016-08-02 12:50:46 2635 [Note] InnoDB: Initializing buffer pool, size = 128.0M

2016-08-02 12:50:46 2635 [Note] InnoDB: Completed initialization of buffer pool

2016-08-02 12:50:46 2635 [Note] InnoDB: Highest supported file format is Barracuda.

2016-08-02 12:50:46 2635 [Note] InnoDB: The log sequence numbers 2512357 and

2512357 in ibdata files do not match the log sequence number 2512396 in $

2016-08-02 12:50:46 2635 [Note] InnoDB: Database was not shutdown normally!

2016-08-02 12:50:46 2635 [Note] InnoDB: Starting crash recovery.

2016-08-02 12:50:46 2635 [Note] InnoDB: Reading tablespace information from the .ibd files...

2016-08-02 12:50:46 2635 [Note] InnoDB: Restoring possible half-written data pages

2016-08-02 12:50:46 2635 [Note] InnoDB: from the doublewrite buffer...

InnoDB: wrong number of columns in SYS_INDEXES record

InnoDB: wrong number of columns in SYS_INDEXES record

InnoDB: wrong number of columns in SYS_INDEXES record

InnoDB: wrong number of columns in SYS_INDEXES record

InnoDB: wrong number of columns in SYS_INDEXES record 17:50:46 UTC - mysqld got signal 11 ;

내가 99.9 %를 해요하지만 확실히 내가했습니다 (이 내가 DB를 업그레이드으로 mysql_fix_privilege_tables를 실행할 수 없습니다 루프에서 나를 떠날 것 같다, 아직 나는 성공적 루트 암호를 재설정 할 수 없습니다 그것은 단지 그것을 수용하지 않는 것으로 올바른 루트 암호를 받았습니다.)

스택 추적 ..

Thread pointer: 0x0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong...

stack_bottom = 0 thread_stack 0x40000

/usr/sbin/mysqld(my_print_stacktrace+0x35)[0x8e2375]

/usr/sbin/mysqld(handle_fatal_signal+0x494)[0x666da4]

/lib64/libpthread.so.0[0x398620f790]

/usr/sbin/mysqld[0xac1017]

/usr/sbin/mysqld[0xac25fd]

/usr/sbin/mysqld[0xa3de77]

/usr/sbin/mysqld[0x9822dd]

/usr/sbin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x48)[0x5aa958]

/usr/sbin/mysqld[0x6f01e1]

/usr/sbin/mysqld(_Z11plugin_initPiPPci+0xbb6)[0x6f4046]

/usr/sbin/mysqld[0x59ce38]

/usr/sbin/mysqld(_Z11mysqld_mainiPPc+0x425)[0x5a2055]

/lib64/libc.so.6(__libc_start_main+0xfd)[0x3985e1ed5d]

/usr/sbin/mysqld[0x593ba5]

어떤 제안? 감사합니다

+0

신호 11은 세그 폴트입니다. 즉, 일종의 메모리 액세스 위반이 있음을 의미합니다. 어쩌면 연계 문제, 패키지 의존성을 잘못 해석했을 수 있습니까? – arkascha

답변

0

당신이 건너 왔던 지시 사항은 잘못되었습니다. 중요한 지침은 다음과 같습니다. from MySQL :

Supported downgrade methods include:

In-place Downgrade: Involves shutting down the new MySQL version, replacing the new MySQL binaries or packages with the old ones, and restarting the old MySQL version on the existing data directory. In-place downgrades are supported for downgrades between GA versions within the same release series. For example, in-place downgrades are supported for downgrades from 5.7.10 to 5.7.9.

Logical Downgrade: Involves using mysqldump to dump all tables from the new MySQL version, and then loading the dump file into the old MySQL version. Logical downgrades are supported for downgrades between GA versions within the same release series and for downgrades between release levels. For example, logical downgrades are supported for downgrades from 5.7.10 to 5.7.9 and for downgrades from 5.7 to 5.6.

For procedures, see Performing an In-place Downgrade , and Performing a Logical Downgrade .

내 돋음에 유의하십시오. 지원되는 유일한 옵션은 mysqldump을 사용하여 데이터베이스 복사본을 가져온 다음 이전 버전으로 가져 오는 것입니다. 바라건대 당신은 몇 가지 백업을 가지고 있습니다!

+0

그래, 그게 지침을 얻은 곳이야. 그러나 논리적 인 다운 그레이드가 아닌 내부 다운 그레이드를하려고했습니다. 5.7.14 구성 요소를 복원하고 논리적 다운 그레이드에 대한 작업을 시도 할 수있었습니다. 그러나이 변경으로 인해이 또한 작동하지 않았습니다. http://dba.stackexchange.com/questions/136320/got-error-while-reverting-mysql-5-7-to-mysql-5-6 궁극적으로, 테이블을 건너 뛰고 테이블을 다시 시작하고, 사용자, 재 할당 권한을 재구 축하 다운 그레이드하고 복원 한 후에 mysql.user 테이블을 유 핵시켜야했습니다. 재미있는 날이었습니다. –

0

논리적 다운 그레이드가 아닌 내부 다운 그레이드를하려고했습니다.

5.7.14 구성 요소를 복원하고 논리적 다운 그레이드를위한 조치를 시도했습니다.

그러나 사용자 테이블 구조가 this으로 변경 되었기 때문에 이것도 작동하지 않았습니다. 궁극적으로, 다운 그레이드, 복원, skip-grant-tables 옵션을 사용하여 서비스를 시작한 다음 mysql.user 테이블을 다시 만든 다음 테이블을 다시 작성하고 사용자를 다시 추가하고 권한을 다시 부여해야했습니다. 재미있는 날이었습니다.

관련 문제