>  기사  >  데이터 베이스  >  Linux에서 mysql 명령을 사용하여 데이터를 백업할 때 발생하는 문제에 대한 자세한 설명

Linux에서 mysql 명령을 사용하여 데이터를 백업할 때 발생하는 문제에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-03 14:30:051423검색

요 며칠 회사에서 mysql 데이터베이스 관련 기술을 사용해야 하는 새로운 컴포넌트 기반 프로젝트를 시작했습니다. 이전에 mongodb를 사용해 본 적이 있어서 mysql은 거의 잊어버렸기 때문에 시작만 할 수 있었습니다. Linux 가상 머신에 대한 연구입니다.

기본적인 추가,삭제,수정,조회는 괜찮았으나, 데이터 백업에 문제가 좀 발생했습니다. 다행히 몇번의 시도 끝에 성공했습니다.

Mysql의 api와 인터넷에서 언급되는 백업 명령어는 mysqldump -uroot -p 백업할 데이터베이스 이름> 대상 경로/대상 파일명.sql이라 다시 입력했는데 결과는 2002년 예외가 발생했습니다(추가: 이 명령을 처음 사용했을 때 mysqldump를 찾을 수 없다는 메시지가 표시되었습니다. 나중에 소프트 링크 ln을 사용하여 mysqldump 명령의 실제 주소를 usr/bin에 연결했습니다):

mysqldump:Got error: 2002: Can't connect to local MySQL server through socket'/tmp/mysql.sock' (2) when trying to connect,
如图1:

정보를 확인한 후 그림 2와 같이 몇 가지 수정을 했습니다.


그러나 이번에는 2002를 사용할 수 없었습니다. 대신 그림 3과 같이 연결을 시도할 때 1045 오류가 발생했습니다: mysqldump: Got error: 1045: 사용자 'root'@'localhost'(비밀번호 사용: YES)에 대한 액세스가 거부되었습니다.


이것은 루트 사용자와 localhost 권한에 문제가 있다는 뜻인 것 같습니다. 왜냐하면 mysql 원격 액세스를 설정할 때 호스트를 다음으로 설정했던 것을 기억하기 때문입니다. %, 그림 4와 같이




그래서 다시 온라인으로 검색한 후 , 또 다른 백업 명령을 시도한 후 그림 5와 같이 작동하는 것을 확인했습니다.


이 시점에서 mysql은 리눅스 가상머신에 데이터베이스 백업이 성공했는데 이 명령어가 너무 길더군요. 그러다가 MySQL의 API가 맞아야 한다고 생각해서 최적화를 해볼까 하는 생각이 들었습니다.

글쎄, 1045 오류는 사용자 권한 문제라고 짐작할 수 있으니, 루트 localhost가 없으면 여기서부터 추가하겠습니다. 그림 4와 같이 데이터베이스를 입력하고 mysql을 사용한 다음 그림 6과 같이 사용자를 추가합니다.


사용자 테이블을 다시 확인합니다. 그림 7과 같이 성공적으로 추가되었음을 확인할 수 있습니다.


그런 다음 그림 8과 같이 백업 명령을 최적화된 명령으로 변경할 수 있습니다.


분명히 명령어가 짧아졌지만 아직 부족해서 정보를 다시 검색해서 해결방법을 찾았네요. mysql.sock의 실제 가리키는 주소는 2002 오류의 주소입니다. 제가 수정한 내용은 그림 9와 같습니다.


그러면 드디어 때가 온 것 같습니다. 이제 API의 내용을 확인할 차례입니다. 명령을 입력하고 Enter 키를 누른 후 다시 성공적으로 백업하면 됩니다.


요약하면 백업의 경우 3가지 명령 방식으로 나눌 수 있는데, 대충 이해하면 알 수 있습니다. 사실은 한 종류일 뿐입니다.

위 내용은 Linux에서 mysql 명령어를 사용하여 데이터를 백업할 때 발생하는 문제에 대한 자세한 설명입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.