programing

bin 로그 디렉터리를 변경하려고 합니다. mysql-bin.index를 찾을 수 없습니다(Errcode: 13).

css3 2023. 10. 17. 20:26

bin 로그 디렉터리를 변경하려고 합니다. mysql-bin.index를 찾을 수 없습니다(Errcode: 13).

MySQL 5.1.54 Ubuntu 11.04

my.conf의 bin log 디렉토리를 다음과 같이 변경하려고 합니다.

[mysqld]
log_bin=/home/developer/logs/mysql/mysql-bin.log

이 변경 후 MySQL 서버가 오류로 시작할 수 없습니다.

/usr/sbin/mysqld: File '/home/developer/logs/mysql/mysql-bin.index' 
not found (Errcode: 13)
111005 12:47:58 [ERROR] Aborting

디렉토리 /home/developer/logs/mysql/에 대한 사용 권한은 0777입니다.

무슨 일이야?

솔루션은 간단하지만 명확하지는 않았습니다. 방금 /etc/apparmor.d/usr.sbin.mysqld에 추가한 apparmor 설정을 /home/developer/logs/*rw의 대상 디렉토리 경로를 포함한 새 문자열을 편집해야 했습니다.

효과가 있어요!

/usr/sbin/mysqld: '/usr/binlogs/mysql-bin.index' 파일을 찾을 수 없습니다(Errcode: 13).

저에게는 효과가 있었습니다.

chown -Rmysql:mysql /usr/binlogs/

유사한 문제에 직면한 모든 사람에게 참고로 제공하는 것처럼, 해결책은 기본적으로 동일하지만, 문제의 원인은 명확하지 않습니다.

Debian wheezy를 업그레이드한 후 mysql을 시작하지 못했습니다.

어찌된 일인지, 어떻게, 어떤 파일에 대한 권한이/var/lib/mysqlmysql 사용자가 소유하지 않았으므로 서버가 실행되지 않습니다.

A chown -R mysql.mysql /var/lib/mysql고쳤습니다.

난 mysql을 망치는 짓을 하지 않았어요, 그건 기준이었죠.

apt-get update

apt-get upgrade

데비안 업그레이드 중에 뭔가 생각이 깊어져서 수동적인 개입이 필요했습니다.

Selinux는 MySQL 데이터베이스 파일이 다른 곳이 아닌 /var/lib/mysql에 있어야 한다는 규칙을 적용할 수 있습니다.mysql을 다른 디렉토리로 이동한 경우 selinux(커널 부트 명령줄에서 selinux=0)를 해제해 보십시오.

옵션 1:

  1. service mysqld stop

  2. .index 파일을 포함한 로그 파일을 새 위치로 복사합니다.

     cp mysql-bin.log* /path/to/binlogs
     cp mysql-bin.index /path/to/binlogs
    
  3. 변경사항 수행/etc/my.cnf파일.

    [mysqld]
    log-bin=/path/to/newdirecory/mysql-bin
    
    log-bin-index=/path/to/newdirectory/mysql-bin.index
    
  4. service mysqld start

옵션 2:

이 유틸리티를 사용하여 이진 로그를 재배치합니다.

mysqlbinlogmove --binlog-dir=/server/data /new/binlog_dir

다음과 같이 디렉토리에 사용자 권한을 부여해야 합니다.

chown -R mysql:mysql /home/developer/logs/mysql/

사용자가 모든 상위 디렉토리에 액세스할 수 있습니까?특히 /home/developer/directory?mysql server 계정으로 로그인하고 로그 파일을 터치해보세요.

mysqld: '/data/log/mysql/mysql-bin.index' 파일을 찾을 수 없습니다(Errcode: 2 - 해당 파일 또는 디렉터리 없음).

MySQL Master - Slave 설정 도중에 정말 막혔습니다.마지막으로 위의 내용은 권한 문제였고, 아래 명령어를 추가하면 제 문제가 해결되었습니다.

chown -Rmysql:mysql/data/log/mysql/

새로 설치할 때 data dir 변수를 변경하려고 할 때도 비슷한 문제가 있었습니다.제 경우 해결책은 로그빈을 비활성화한 상태에서 처음 시작을 실행하는 것이었습니다.그 후 새 경로를 사용하여 다시 활성화할 수 있었습니다.

구성이 올바르지 않습니다.

log_bin=/home/developer/logs/mysql/mysql-bin.log

대신에 당신이 사용할 것입니다.

log-bin=/home/developer/logs/mysql/mysql-bin.log

"my.cnf" 파일의 복제 구성 중에 다음 사항을 언급해야 합니다.

server-id=1 log_bin=/var/log/ mysql/ mysql-bin.log

당신은 당신만의 디렉토리를 만들고 권한을 줄 수 있습니다. /var/log/에 디렉토리 "mysql"를 생성합니다.

chmod 777 mysql

이것은 MySQL 버전 5.7에 적용 가능합니다.

줄에 댓글을 달 수도 있습니다.my.cnf로그 위치를 정의하는 파일이므로 mysql은 기본 경로를 고려하고 적절하게 시작합니다.

log-bin = /var/log/mysql/mysql-bin.log->#log-bin = /var/log/mysql/mysql-bin.log.

로그에 대해 크게 관심이 없는 경우에 도움이 될 것입니다.

mysql의 문서에는 https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_log_bin 이라고 나와 있습니다.

변수는 log_bin이며 적어도 버전 5.7에서는 log_bin이 아닙니다.

언급URL : https://stackoverflow.com/questions/7660410/try-to-change-bin-log-directory-mysql-bin-index-not-found-errcode-13