반응형
MySQL | 정의자('test'@'%')로 지정된 사용자가 없습니다.
내 안에서phpmyadmin나는 "testDB"라는 데이터베이스가 있고 내 명령줄로 데이터베이스를 내보내려고 하지만, 내가 이 명령을 실행하려고 할 때마다 나는 받습니다.mysql오류 1449:
mysqldump -u root -p testDB > data-dump.sql
오류는 다음과 같습니다. "LOCK TABLES를 사용할 때 정의자('myuser'@'%')로 지정된 사용자가 없습니다."
sql 파일을 분석해보니 이 사용자 이름이 파일 하단에 한 번만 표시됩니다.
"/* 50013 DEFINER='myuser'@'%' sql security definer */"
내보내기 데이터베이스가 없으면 새 사용자를 생성할 수 없으므로 이 문제를 해결하려면 어떻게 해야 합니까?
이 값을 데이터베이스에 대한 특정 SQL 명령으로 바꿀 수 있습니까?
내 서버 세부 정보:
-Apache/2.4.29
-MariaDB 10.4.18
-PHP 7.4.18
다음과 같은 이유로 사용자 이름이 아래에 한 번만 나타납니다.mysqldump데이터 내보내기를 완료하기 전에 종료됩니다.두 가지 가능한 해결책이 있습니다.
- 테이블, 루틴 및 트리거 생성 파일을 사용할 수 있는 경우 데이터만 내보낼 수 있습니다.
mysqldump -u [user] -p --no-create-info testDB > data-dump.sql - "아무도 보고 있지 않음"인 경우 다음을 생성할 수 있습니다.
'myuser'@'%'임시로 계정을 생성하고 적절한 권한을 부여한 다음 덤프를 수행한 다음 사용자를 제거합니다.다음을 사용하여 데이터 내보내기를 수행하고 있습니다.root그래서 당신은 성에 대한 열쇠를 가지고 있습니다.
그런 다음 데이터를 덤프합니다.mysql > CREATE USER IF NOT EXISTS 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123'; mysql > GRANT USAGE ON `testDB`.* TO 'myuser'@'%'; mysql > FLUSH PRIVILEGES; mysql > exit;
그런 다음 사용자 계정을 제거합니다(필요한 경우).$ mysqldump -u root -p testDB > data-dump.sql
제거하려는 경우mysql > DROP USER 'myuser'@'%'; mysql > FLUSH PRIVILEGES; mysql > exit;DEFINERSQL 내보내기 행, 다음에 수행할 수 있습니다.mysqldump으로 완료합니다.sed:sed -i 's/DEFINER=[^*]*\*/\*/g' data-dump.sql - 이 "DBA 방식"을 수행하려면 다음을 수정합니다.
DEFINER데이터베이스의 모든 개체에 대해.DBA 스택 사이트의 이 답변을 통해 이 목표를 달성하는 방법을 시작할 수 있습니다.작업이 완료되면 오류가 다시 표시되지 않습니다.
언급URL : https://stackoverflow.com/questions/67413611/mysql-the-user-specified-as-a-definer-test-does-not-exist
반응형
'programing' 카테고리의 다른 글
| RETURN 조항이 제약 조건 위반에 대한 예외를 초래하지 않는 것이 예상되는 동작입니까? (0) | 2023.08.12 |
|---|---|
| mysql 구성을 시작할 수 없음: 복구 절차 (0) | 2023.08.07 |
| ID에 대한 변수를 사용하여 jQuery에서 요소를 선택하려면 어떻게 해야 합니까? (0) | 2023.08.07 |
| Swift @escape 및 완료 핸들러 (0) | 2023.08.07 |
| MAC에서 /usr/local/lib/node_modules에 대한 쓰기 액세스가 누락됨 (0) | 2023.08.07 |