mysql 데이터베이스에 여유 공간이 없습니다

mysql 데이터베이스에 여유 공간이 없습니다

나는 회복 중입니다200GB새로 설치될 데이터베이스RHEL기계. 그런데 복원을 하다가 문제가 생겼습니다 no space available.

데이터베이스의 저장 디렉터리를 변경할 수 있나요?

답변1

먼저 다음 쿼리만 사용하여 공간 문제와 관련이 있는지 확인할 수 있습니다 mysql.

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'

위 명령으로 나에게 반환된 출력은 다음과 같습니다.

+---------------------------+----------------------------+
| Variable_name             | Value                      |
+---------------------------+----------------------------+
| basedir                   | /usr                       |
| character_sets_dir        | /usr/share/mysql/charsets/ |
| datadir                   | /var/lib/mysql/            |
| innodb_data_home_dir      |                            |
| innodb_log_group_home_dir | ./                         |
| lc_messages_dir           | /usr/share/mysql/          |
| plugin_dir                | /usr/lib/mysql/plugin/     |
| slave_load_tmpdir         | /tmp                       |
| tmpdir                    | /tmp                       |
+---------------------------+----------------------------+

위의 명령에서 볼 수 있듯이,데이터 디렉토리에 존재합니다 /var/lib/mysql. 이제 데이터베이스를 수용할 공간이 충분하지 않은지 확인해야 합니다 /var. 이 경우 검색이 정확합니다. 다음 명령을 사용하여 구현했습니다.

df -P /var | tail -1 | cut -d' ' -f 1

위 명령은 기본적으로 특정 디렉터리의 마운트 지점을 알려줍니다. 내가 의심했듯이 마운트 지점 /dev/sda2에는40GB공간. 이제 데이터 디렉토리를 변경하는 것은 매우 간단합니다.

mysql 서비스를 중지하는 데 사용합니다.

service mysqld stop

/etc/my.cnf다음과 같이 파일을 편집 합니다.데이터 디렉토리공간이 충분한 파티션으로. (이는 RHEL에만 해당되며 OS 버전에 따라 다를 수 있습니다). 변화데이터 디렉토리, 명령을 사용하여 mysql 서비스를 다시 시작하고,

service mysqld start

인용하다

https://stackoverflow.com/questions/17968287/how-to-find-the-mysql-data-directory-from-command-line-in-windows

https://stackoverflow.com/questions/3274354/how-to-find-out-mount-partition-a-directory-or-file-is-on-linux-server

답변2

예, .db 파일의 datadir 변수를 변경하여 MySQL 데이터베이스 데이터의 위치를 ​​변경할 수 있습니다 /etc/my.cnf.

아래 단계를 시도하기 전에 데이터를 백업하십시오.

  1. mysqld 서비스를 중지합니다( systemctl mysqld stop).
  2. /etc/my.cnfdatadir 변수를 편집하여 원하는 위치( datadir='insert_path_to_new_location')로 변경하고 다음 단계를 위해 이전 위치를 기록해 두십시오.
  3. 이전 datadir 위치의 데이터를 새 위치로 복사합니다.
  4. mysqld 서비스( systemctl mysqld start)를 시작합니다.
  5. mysqld 서비스가 새 위치에서 제대로 작동하는지 확인하십시오.
  6. 이전 데이터 디렉토리의 남은 부분을 정리하십시오!

답변3

예, my.cnf 파일의 설정을 사용하여 MySQL 데이터베이스가 있는 위치를 변경할 수 있습니다.

관련 정보