오류- 'innodb'함수가 이미 존재합니다


11

일부 MyISAM 테이블을 INNODB로 변환하려고합니다. 4 코어 / 8 스레드 CPU에서 MySQL 5.6 (5.5에서 apt-get 업그레이드), 32G 램으로 Ubuntu 14.04 Server 실행 처음에 문제가 발생했습니다 ...

could not open single-table tablespace file .\mysql\innodb_index_stats.ibd after restart of MySQL

Error: Table "mysql"."innodb_table_stats" not found.

나는 Rolando의 게시 된 조언을 따랐으며 DB가 더 이상 충돌하지 않거나 더 큰 error.log를 생성하지 않습니다. (위의 문제는 사라지고 주요 사건을 설명합니다)

이제 INNODB로 변환하기 전에 다음 오류가 걱정 됩니다. 내가 읽은 내용에서 연합을 무시할 수 있습니다. 아래 두 번째 줄 (이 게시물의 주제)은 저와 관련이 있습니다.

2014-05-19 01:50:57 30950 [Note] Plugin 'FEDERATED' is disabled.
2014-05-19 01:50:57 30950 [ERROR] Function 'innodb' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'innodb' with soname 'ha_innodb.so'.
2014-05-19 01:50:57 30950 [ERROR] Function 'federated' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'federated' with soname 'ha_federated.so'.
2014-05-19 01:50:57 30950 [ERROR] Function 'blackhole' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'blackhole' with soname 'ha_blackhole.so'.
2014-05-19 01:50:57 30950 [ERROR] Function 'archive' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'archive' with soname 'ha_archive.so'.

Rolando의 게시 된 조언에서 my.cnf에 다음을 추가했습니다.

innodb_buffer_pool_size=4G
innodb_buffer_pool_instances=2
innodb_read_io_threads=12
innodb_write_io_threads=12
innodb_io_capacity=300
innodb_log_file_size=128M

INNODB와 관련된 다른 것이 있는지 확실하지 않았습니다. 내가 찾은 것을 기반으로 추가됨

innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1

도움이되지 못했습니다. 나는 그것이 "기존의 기능"을 제거 할 것으로 기대하지 않았다 ... lol


mysql_upgrade를 실행 했습니까?
dwjv

@dwjv는 확실하지 않으므로 실행했으며 "이 MySQL 설치는 이미 5.6.17로 업그레이드되었습니다"라고 말했습니다. error.log에 "[ERROR] 함수 'innodb'가 이미 있습니다"와 동일한 문제
traildex

답변:


12

error.log에 오류를 발생시키는 플러그인은 my.cnf에 구체적으로 지정되지 않았습니다. 그래서 나는 달렸다 ...

select * from mysql.plugin

MySQL 5.6.17의 경우 mysql.plugin에서 다음 행을 삭제했습니다.

innodb ha_innodb.so
federated ha_federated.so
blackhole ha_blackhole.so
archive ha_archive.so

확실하지 않은 내용은 삭제하지 마십시오. 위의 내용은 나를 위해 ...

  • Federated를 사용하지 않습니다 (원격 데이터베이스 테이블의 데이터에 액세스)
  • INNODB는 5.6에 내장되어 있으며 플러그인이 필요하지 않습니다.
  • 나는 블랙홀을 사용하지 않습니다 (데이터를 받아들이지 만 버리고 버리지 않습니다)
  • 아카이브를 사용하지 않습니다 (인덱스없이 많은 양의 데이터를 매우 작은 설치 공간에 저장)

2
어떤 플러그인이 무엇을하는지 목록에 대해 추가 크레딧을 받아야합니다. 감사합니다!
n611x007

0

문제

mysql.innodb_table_statsMySQL 5.6 설치의 일부입니다. mysql_upgrade는이를 생성하지 않습니다. 왜 ?

  • MySQL 5.6을 처음부터 설치하면 해당 파일이 생성됩니다.
  • 파일 innodb_table_stats.ibd이 MySQL 5.5의 mysql 스키마에 존재하지 않습니다
  • MySQL 5.5의 mysql_upgrade는 innodb 시스템 테이블을 인식하지 못한다.
  • 실제로 .ibdmysql 스키마에는 MySQL 5.6에 5 개의 파일이 있습니다.

해결책

작년에 쓴 게시물을 확인하는 방법을 확인하십시오

시도 해봐 !!!


고마워, 나는 당신의 게시 된 조언으로 이전에 그것을 해결했습니다. 여기 내 관심사는 error.log의 "[ERROR] 함수 'innodb'가 이미 존재합니다."
traildex

0

PCLinuxO에서 이와 비슷한 종류의 오류가 발생했습니다. 내가 무슨 짓을 그냥 파일 이름이 변경 /etc/my.cnf/etc/my.cnf.bak나는 MySQL 서버를 시작할 수 있었다. 나는 정확한 이유를 모르지만 그것은 나를 위해 일했다. 해당 파일의 설정이 충돌 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.