'사용'후 MySQL 데이터베이스 동결


17

최근에 어리석은 실수를해서 우분투 설치가 손상되었습니다. 이를 해결하기 위해 라이브 CD로 부팅하고 데이터베이스 파일을 복사했습니다. 그러나 이제 "use database_name"을 입력 할 때마다 이전 설치에서 새 설치로 폴더를 복사했습니다.

mysql> use my_database_name;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

그리고 터미널을주지 않고 얼어 붙습니다.

답변:


28

로그인 후 첫 번째 "사용"명령에서 MySQL은 자동 완성을 위해 데이터베이스, 테이블 및 열 이름을 스캔합니다. db, 테이블이 많은 경우 시간이 걸릴 수 있습니다.

이를 피하려면 -A 옵션 (또는 --no-auto-rehash)으로 클라이언트를 시작하십시오.

mysql -uroot -p -A

disable_auto_rehash 변수를 my.cnf ([mysql] 섹션에 있음)에서 완전히 비활성화하려면 추가 할 수도 있습니다 . 이 변경에는 재부팅이 필요하지 않습니다 (서버가 아닌 클라이언트 인 변수).


~ 2.5GiB 데이터베이스의 경우 "한동안"이 하루 이상 지속될 수 있습니까?
lucidbrot

2

제 경우에는 "읽는 테이블 정보"에 무리가 있습니다. 실행했을 때 mysql -e 'show processlist'"매달린"프로세스가 "테이블 메타 데이터 잠금 대기 중"임을 발견했습니다. 이것은 create table from select ...다른 곳에서 실행 되는 폼에 대한 장기 실행 쿼리가 있었기 때문에 일종의 의미가 있었 으므로 한 수준에서 새 테이블 생성이 완료 될 때까지 테이블에 대한 메타 데이터를 사용할 수 없다는 것을 이해할 수있었습니다. (가능한 경우 자동 완성 스캔이 메타 데이터 쿼리에서 "불완전한"테이블을 생략 한 것이 바람직하다고 생각합니다.)


0

📌

다른 시스템에서 전체 데이터베이스복사하는 경우 :

/ var / lib / mysql / *

-R mysql : mysql / var / lib / mysql / *을 숨길 수 있습니다 . 다시 서비스를 시작합니다.

☝ 이것은 내 문제를 해결했다 👊


2
DBA Stack Exchange에 오신 것을 환영합니다! 당신은 이것을 인용문으로 형식화했습니다; 이 솔루션을 다른 곳에서 실제로 얻은 경우 소스를 제공해야합니다 . 그렇지 않으면 포맷을 제거하십시오.
Glorfindel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.