chown 루트:루트 /tmp

chown 루트:루트 /tmp

mysql57-community-release-el6-7.noarch.rpm Repo를 사용하여 RHEL 6.5에 Mysql 서버 5.7.9를 설치했습니다. 설치는 성공했지만 실행하려고 하면 오류가 발생합니다. /var/log/mysqld.log에서 다음 로그를 얻습니다.

> 2016-02-16T08:16:55.473839Z 0 [Note] InnoDB: PUNCH HOLE support
> available 2016-02-16T08:16:55.473945Z 0 [Note] InnoDB: Mutexes and
> rw_locks use GCC atomic builtins 2016-02-16T08:16:55.473983Z 0 [Note]
> InnoDB: Uses event mutexes 2016-02-16T08:16:55.474011Z 0 [Note]
> InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
> 2016-02-16T08:16:55.474038Z 0 [Note] InnoDB: Compressed tables use
> zlib 1.2.3 2016-02-16T08:16:55.474062Z 0 [Note] InnoDB: Using Linux
> native AIO 2016-02-16T08:16:55.474908Z 0 [Note] InnoDB: Number of
> pools: 1 2016-02-16T08:16:55.475257Z 0 [Note] InnoDB: Not using CPU
> crc32 instructions mysqld: Can't create/write to file '/tmp/ibUFqzVe'
> (Errcode: 13 - Permission denied) 2016-02-16T08:16:55.475430Z 0
> [ERROR] InnoDB: Unable to create temporary file; errno: 13
> 2016-02-16T08:16:55.475460Z 0 [ERROR] InnoDB: Plugin initialization
> aborted with error Generic error 2016-02-16T08:16:55.475490Z 0 [ERROR]
> Plugin 'InnoDB' init function returned error.
> 2016-02-16T08:16:55.475515Z 0 [ERROR] Plugin 'InnoDB' registration as
> a STORAGE ENGINE failed. 2016-02-16T08:16:55.475536Z 0 [ERROR] Failed
> to initialize plugins. 2016-02-16T08:16:55.475557Z 0 [ERROR] Aborting
> 
> 2016-02-16T08:16:55.475583Z 0 [Note] Binlog end
> 2016-02-16T08:16:55.475695Z 0 [Note] Shutting down plugin
> 'keyring_file' 2016-02-16T08:16:55.476442Z 0 [Note] /usr/sbin/mysqld:
> Shutdown complete
> 
> 2016-02-16T08:16:55.502968Z mysqld_safe mysqld from pid file
> /var/run/mysqld/mysqld.pid ended

이 오류가 무엇을 말하는지 제안해 주세요...

답변1

MySQL 서버는 /tmp 디렉터리에 액세스할 수 없고 임시 파일에 쓰거나 만들 수 없습니다. /tmp 디렉토리가 루트 사용자의 소유이고 고정 비트가 /tmp 디렉토리에 설정되어 있는지 확인하십시오. 이 오류를 해결하려면 다음 명령을 입력하십시오. 루트로 로그인하고 다음을 입력해야 합니다.

chown 루트:루트 /tmp

chmod 1777 /tmp

시험을 받다

/etc/init.d/mysqld 시작

답변2

> [ERROR] InnoDB: Unable to create temporary file; errno: 13

이 줄에 뭔가 문제가 있는 것 같습니다. /tmpdir이 존재하고(있어야 함) mysql 사용자(또는 사용 중인 사용자)가 사용할 수 있는지 확인해보세요 . --tmpdir구성에서 다른 경로나 옵션을 사용해 볼 수 있습니다 . 자세한 정보문서에서).

SELinux에 문제가 있을 수도 있습니다(강제 모드인 경우). ausearch -ts today -m avc | audit2allow/tmp 디렉토리가 mysql에 의해 차단되지 않은 경우 감사 로그를 확인하십시오(예: 테스트를 위해 setenforce 0.

관련 정보