2013-12-21 2 views
1

외부 하드 드라이브에 데이터베이스가 있으므로이 하드 드라이브를 마운트하고 데이터베이스 폴더에 /var/lib/mysql의 심볼릭 링크를 만들었습니다.mysql 휠에 루트 사용자 추가

그러나 하드 드라이브를 root 사용자로 탑재하고 mysql 사용자가 mysql이므로 해당 데이터베이스에 액세스 할 수 없습니다.

root 사용자를 mysql wheel에 추가 할 수 있습니까?

답변

0

mysql 그룹에 root를 추가해도 아무런 변화가 없으며, mysql을 wheel 그룹에 추가하는 것은 아마도 전혀 도움이되지 않을 것입니다. 이런 문제를 해결하는 방법과 방법이 있습니다 ... 일반적인 문제는 mysql 서버가 루트가 소유 한 파일을 읽고 쓸 수 없다는 것입니다.

mysql 서버가 루트 사용자로 실행되도록 설정할 수 있지만 (시작 스크립트에서 --user = mysql 행을 제거하여) 아마도 매우 좋지 않습니다. 질의의 더 나은 라인은 파일을 mysql 사용자가 읽고 쓸 수있게 만드는 것이다.

나는 아마도 간단한 파일 권한 문제가 바라고, 만 데이터베이스과 같이 MySQL의 소유 만들기 위해 Ubuntu Manpage: chown 유틸리티를 실행할 필요가 :

chown -R mysql /path/to/your/external/database 

을 한 후 MySQL의 데몬을 다시 시작합니다.

아하, chown이 작동하지 않았습니다. 루트로 실행 했더라도? 이런.

아마도이 기기에서 작동이 허용되지 않는다고 말했습니까? USB 스틱이나 다른 것에 fat32 파일 시스템이있을 수 있습니까? 대신 루트의 MySQL 사용자가 당신을 위해 그것을 해결하므로 아마도 mounting 장치 : 그들은 문제를 해결해야 MySQL의 사용자가 소유하는 장치 보고서에있는 모든 파일을 만들어야합니다

umount /path/to/external/device 
mount -t vfat -o uid=mysql /dev/foo /path/to/external/device 

.

이것을 장기적인 해결책으로 사용하려는 경우 장치를 원래의 리눅스 파일 시스템으로 다시 포맷하여 실제 사용자와 권한을 가질 수는 있습니다. ... 항상 데이터를 먼저 백업하십시오!^_^

EDIT : --bind 인수를 사용하면 여러 위치에 디렉토리가 표시되도록 마운트 할 수 있지만 사용자 아이디를 다시 매핑하는 작업은 작동하지 않습니다. 사용자 아이디를 다시 매핑하려면 물리적 장치를 마운트 해제하고 -o uid = mysql을 사용하여 실제 장치를 마운트 한 다음 전체 디스크를 mysql의 사용자 아이디로 사용할 수있게되면 여러 위치에 자유롭게 바인딩하십시오.

+0

감사합니다. 그러나 명령을 사용하면 데이터베이스가 '루트'로 다시 마운트됩니다! 나는이 명령을 폴더를 마운트하기 때문에 사용한다 :'sudo mount --bind -t vfat -o uid = mysql/media/hdd/server/databases/media/mysql' – MajAfy

관련 문제