sourcecode

mysql의 데이터 디렉토리를 이동하지 못함

codebag 2023. 8. 6. 10:04
반응형

mysql의 데이터 디렉토리를 이동하지 못함

mysql의 데이터 디렉토리를 이동하려고 합니다. 단계는 다음과 같습니다.

  • 사용하다show variables like 'datadir'나를 아는 것은datadir이라/var/lib/mysql/
  • cd /var/lib/mysql/
  • # mv * /home/elderry/db/
  • gvim /etc/mysql/my.cnf
  • 다음에 이 줄 추가[mysqld]섹션:datadir = /home/elderry/db/
  • # systemctl start mysqld

    Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.

  • 그러고 나서 시도했습니다.systemctl status mysqld.service

결과:

mysqld.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled)
   Active: activating (start-post) (Result: exit-code) since Tue 2013-07-30 14:31:53 CST; 13s ago
  Process: 14174 ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid (code=exited, status=1/FAILURE)
  Control: 14175 (mysqld-post)
   CGroup: name=systemd:/system/mysqld.service
           └─control
             ├─14175 /bin/sh /usr/bin/mysqld-post
             └─14293 sleep 1

Jul 30 14:31:53 Kanone mysqld[14174]: 130730 14:31:53 [Warning] Can't create test file /home/elderry/db/Kanone.lower-test
Jul 30 14:31:53 Kanone mysqld[14174]: [71B blob data]
Jul 30 14:31:53 Kanone mysqld[14174]: 130730 14:31:53 [ERROR] Aborting
Jul 30 14:31:53 Kanone mysqld[14174]: 130730 14:31:53 [Note] /usr/bin/mysqld: Shutdown complete
Jul 30 14:31:53 Kanone systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
  • mysql을 수동으로 시작하려는 경우:mysql -u root -p출력:

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

이제 어떻게 해야 하나요?

데이터디르를 홈 디렉토리로 이동한 것 같습니다.서비스 관리자(시스템d의 경우)를 통해 mysqld를 시작하면 권한이 없는 사용자(아마도)로 시작될 것입니다.mysql) 이 사용자가 사용자의 홈디어에 액세스할 수 있는 권한이 있는지 의심스럽습니다.elderry.

따라서 솔루션은 데이터를 보다 적합한 위치로 이동하는 것입니다./var/lib/mysqlmysql이 실행되는 사용자에게 이 디렉터리를 삭제합니다.또는 mysql 사용자에게 해당 사용자가 홈디어에 액세스할 수 있는 권한을 부여합니다.elderry.

MariaDB를 설치하면 모든 데이터 파일을 소유하는 사용자 및 그룹 mysql이 자동으로 생성되므로 data dir를 이동할 경우 새 데이터 디렉토리의 모든 폴더, 하위 폴더, 파일이 사용자 mysql 및 그룹 mysql에 의해 소유되는지 확인합니다.

또한 파티션이 꽉 차지 않았는지 확인하십시오. 제 경우였습니다.

알 수 없는 이유로 데이터를 다른 파티션으로 이동할 수도 없습니다.

따라서 빠른 수정을 위해 llvm 또는 gparted를 혼란스럽게 하는 대신 사용자 수를 줄였습니다./swapfile크기.

언급URL : https://stackoverflow.com/questions/17939935/fail-to-move-mysqls-data-directory

반응형