우분투 12.04에 MySQL 서버 5.5를 설치했습니다. 다른 양말 파일에서 MySQL 서버를 시작하려고합니다. 기본적으로 MySQL은 /var/run/mysqld/mysqld.sock에서 실행됩니다.
/var/run/mysqld/mysqld1.sock에서 동일한 서버를 실행하려고합니다.
이를 위해 다음과 같이 변경했습니다.
- /etc/mysql/my.cnf로 변경
[고객] 포트 = 3306 소켓 = /var/run/mysqld/mysqld1.sock [mysqld_safe] 소켓 = /var/run/mysqld/mysqld1.sock 좋은 = 0 [mysqld] 사용자 = MySQL pid 파일 = /var/run/mysqld/mysqld.pid ** 소켓 = /var/run/mysqld/mysqld1.sock** 포트 = 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp lc-messages-dir = / usr / share / mysql
또한 /etc/apparmor.d/usr/sbin.mysqld에 다음 줄을 추가했습니다.
/var/run/mysqld/mysqld1.sock w,
/var/run/mysqld/mysqld[1-9].sock w,
또한 / var / run / mysqld 디렉토리의 소유권을 mysql 사용자로 변경했습니다.
ls -lA / var / run / | grep mysqld
drwxrwxrwx 2 mysql mysql 40 12 월 31 일 17:24 mysqld
그러나 MySQL 서버를 시작하려고하면 다음 오류가 발생합니다 (루트 사용자로서)
$ mysqld --user = mysql --verbose 121231 18:40:56 [참고] 플러그인 'FEDERATED'가 비활성화되었습니다. 121231 18:40:56 InnoDB : InnoDB 메모리 힙이 비활성화되었습니다 121231 18:40:56 InnoDB : Mutexes 및 rw_locks는 GCC 원자 내장을 사용합니다 121231 18:40:56 InnoDB : 압축 테이블은 zlib 1.2.3.4를 사용합니다 121231 18:40:56 InnoDB : 버퍼 풀 초기화, 크기 = 128.0M 121231 18:40:56 InnoDB : 버퍼 풀 초기화 완료 121231 18:40:56 InnoDB : 지원되는 파일 형식은 Barracuda입니다. 121231 18:40:57 InnoDB : 백그라운드 스레드가 시작되기를 기다리는 중 121231 18:40:58 InnoDB : 1.1.8 시작; 로그 시퀀스 번호 1595685 121231 18:40:58 [참고] 서버 호스트 이름 (바인드 주소) : '127.0.0.1'; 포트 : 3306 121231 18:40:58 [참고]- '127.0.0.1'은 '127.0.0.1'로 해석됩니다. 121231 18:40:58 [참고] IP에서 생성 된 서버 소켓 : '127.0.0.1'. **`121231 18:40:58 [오류] 서버를 시작할 수 없습니다 : 유닉스 소켓에 바인딩 : 권한이 거부되었습니다 ** 121231 18:40:58 [오류] 이미 다른 mysqld 서버가 소켓에서 실행되고 있습니까? /var/run/mysqld/mysqld1.sock? 121231 18:40:58 [오류] 중단 ** 121231 18:40:58 InnoDB : 종료 시작 중 ... 121231 18:40:58 InnoDB : 종료가 완료되었습니다. 로그 시퀀스 번호 1595685 121231 18:40:58 [참고] mysqld : 종료 완료
기본 소켓 파일로 서버를 시작하면 서버를 시작할 수 있습니다. 이 문제에 대해 Google에서 검색했지만 권한 문제임을 제안하는 솔루션 만 찾았습니다. 그러나 권한은 괜찮아 보입니다. 일부 사람들은 AppArmor가 원인 일 수 있다고 제안했지만 너무 스 니펫을 붙여 넣었습니다.
누군가 단서를 제공 할 수 있습니까?
[편집하다]
에 다음 출력이 표시됩니다 /var/log/syslog
.
1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 [참고] 플러그인 'FEDERATED'가 비활성화되었습니다. 1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 InnoDB : InnoDB 메모리 힙이 비활성화되었습니다 1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 InnoDB : Mutexes와 rw_locks는 GCC 원자 내장을 사용합니다. 1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 InnoDB : 압축 테이블은 zlib 1.2.3.4를 사용합니다. 1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 InnoDB : 버퍼 풀 초기화, 크기 = 128.0M 1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 InnoDB : 버퍼 풀 초기화 완료 1 월 2 일 12:09:34 praveshp-lt mysqld : 130102 12:09:34 InnoDB : 지원되는 파일 형식은 Barracuda입니다. 1 월 2 일 12:09:35 praveshp-lt mysqld : 130102 12:09:35 InnoDB : 백그라운드 스레드가 시작되기를 기다리는 중 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 InnoDB : 1.1.8 시작; 로그 시퀀스 번호 1595685 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [참고] 서버 호스트 이름 (바인드 주소) : '127.0.0.1'; 포트 : 3307 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [참고]- '127.0.0.1'은 '127.0.0.1'로 해석됩니다. 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [참고] IP에서 생성 된 서버 소켓 : '127.0.0.1'. 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [오류] 서버를 시작할 수 없습니다 : 유닉스 소켓에 바인딩 : 권한이 거부되었습니다 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [오류] 소켓에서 다른 mysqld 서버가 이미 실행 중입니까 : /var/run/mysqld/mysqld1.sock? 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [오류] 중단 1 월 2 일 12:09:36 praveshp-lt mysqld : 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 InnoDB : 시스템 종료 중 ... 1 월 2 일 12:09:36 praveshp-lt 커널 : [7060.098580] type = 1400 audit (1357108776.036 : 33) : apparmor = "DENIED"operation = "mknod"parent = 6702 profile = "/ usr / sbin / mysqld"name = "/run/mysqld/mysqld1.sock"pid = 7039 comm = "mysqld"requested_mask = "c"denied_mask = "c"fsuid = 116 ouid = 116 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 InnoDB : 종료 완료; 로그 시퀀스 번호 1595685 1 월 2 일 12:09:36 praveshp-lt mysqld : 130102 12:09:36 [참고] / usr / sbin / mysqld : 종료 완료
권한이 거부되었지만 올바른 권한을 설정 한 것 같습니다.
/etc/apparmor.d/usr.sbin.mysqld
이전 버전과 새 버전의 비교가 여기에 있습니다. bugs.launchpad.net/ubuntu/+source/mysql-5.1/+bug/876268/…
/usr/local/mysql
및 에 대한 권한을 확인하십시오/tmp
. 최소 775 여야합니다. 2./var/lib/
폴더 아래의 mysql 데이터베이스 디렉토리에 대한 권한은mysql:root
(chown mysql:root mysql
) 이어야합니다.