MariaDB가 내 SQL 백업을 거부하는 이유는 무엇입니까?

MariaDB가 내 SQL 백업을 거부하는 이유는 무엇입니까?

이전 질문의 소스 코드를 얻을 수 없었기 때문에 Linode를 Debian 9로 다시 빌드해야 했습니다.

나는 사용했다이 설정 가이드새로운 데비안 배포판에 모든 것을 재구성하고 다시 설치하세요.

그러나 이 작업을 수행하기 전에 다음 명령을 사용하여 백업을 수행했습니다.

$ mysqldump --add-drop-table -h vps.sensation-experience.com -u wordpress -p wordpressDB > backup.sql

그리고 외장하드에 저장해 보세요.

MariaDB를 설정하고 보안 스크립트를 실행하여 루트 비밀번호를 생성하고, 호스트 이름과 호스트 파일을 변경하고, localhost의 액세스를 거부한 후 다음 줄을 실행해 보았습니다.

mysql --user wordpress --password < backup.sql

나는 이미 백업이 있는 디렉터리에 있습니다. 내가 얻는 오류는 다음과 같습니다.

 ERROR 1698 (28000): Access denied for user 'wordpress'@'localhost'

이 문제를 해결할 수 있는 방법이 있습니까? 아니면 새 데이터베이스를 만들고 이전에 내보내고 가져온 XML을 사용해야 합니까?

답변1

아래와 같이 백업 사용자 액세스 권한을 부여합니다.

MariaDB [(none)]> GRANT LOCK TABLES, SELECT ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY 'your-password';

MariaDB [(none)]> flush privileges;

그런 다음 다시 시도해 보세요.

답변2

wordpress아직 MariaDB에 사용자가 없을 수도 있습니다. 백업을 복원하려면 사용자 보다 wordpress더 광범위한 권한이 필요할 수 있습니다. 데이터베이스 사용자로 복원하는 것이 좋습니다 root. Debian 시스템에서 MariaDB에 로그인하는 가장 쉬운 방법은 root사용자로 시스템에 로그인한 동안 매개변수 없이 실행하는 것입니다.mysqlroot

root@tux:~$ echo "CREATE DATABASE wordpressDB;" | mysql
root@tux:~$ mysql < backup.sql

참고: 하다아니요localhostDebian 시스템에 기본적으로 설정되어 있는 Unix 도메인 소켓을 통해 연결하도록 지정합니다 . Unix 도메인 소켓에 액세스할 수 있는 모든 사람(기본적으로 시스템 사용자여야 함 root)은 자동으로 rootMariaDB에서 권한을 가지므로 사용자 이름/비밀번호를 지정할 필요가 없습니다 .

관련 정보