programing

mysqdump: 오류가 발생했습니다: 1449:

subpage 2023. 9. 26. 22:22
반응형

mysqdump: 오류가 발생했습니다: 1449:

mysqdump: 오류가 발생했습니다: 1449:LOCK TABLES를 사용할 때 정의자('root'@'192.200.1.16')로 지정된 사용자가 없습니다.

위의 오류에 대한 해결책을 주시기 바랍니다.

첫번째 mysqldump 를 사용하는 것이 좋습니다.--single-transaction, 예:

mysqldump --single-transaction -u root -p mydb > mydb.sql

위에서 작동하지 않는 경우 아래에서 시도하십시오.

해당 절차/방법에 대한 정의를 교체해야 오류 없이 덤프를 생성할 수 있습니다.

다음과 같이 수행할 수 있습니다.

UPDATE `mysql`.`proc` p SET definer = 'root@localhost' WHERE definer='root@192.200.1.16'

타사 편집

mysql 8.0의 경우 테이블 프로크가 더 이상 존재하지 않습니다. 시도해 보십시오.

 SELECT * FROM information_schema.routines;

다른 호스트에서 모든 보기와 테이블을 복사한 후에도 동일한 문제가 발생했습니다.

이 답변의 쿼리를 사용하여 데이터베이스의 모든 정의를 변경한 후에 작동했습니다.

편의를 위해 여기 복사:

  SELECT CONCAT("ALTER DEFINER=`youruser`@`host` VIEW ", 
                table_name, 
                " AS ", 
                view_definition, ";") 
    FROM information_schema.views 
    WHERE table_schema='your-database-name';

mysqldump -u user -p password --lock-tables=false --default-auth=mysql_native_password dbname > dump.sql

비슷한 문제가 있었는데, 데이터베이스를 한 인스턴스에서 다른 인스턴스로 마이그레이션하려고 했지만 덤프에 있는 프로시저도 다른 데이터베이스를 참조하는 프로시저가 있어서 프로시저를 수정하거나 일부를 제거하지 못해서 오류를 표시하고 수정했습니다.

가장 최근에 업데이트된 답변에서는 --single-transaction을 사용하여 백업을 복원할 때 해당 오류가 다시 발생하므로 가장 좋은 해결책은 정의를 변경하는 것입니다. 사용자가 누락된 경우 현재 사용 중인 관리자 사용자에 대한 정의를 추가합니다.

시도해 보십시오.

mysqldump -h hostname -u thomas -p -x dbname >  xxx_2015_03_25.sql

언급URL : https://stackoverflow.com/questions/26583103/mysqldump-got-error-1449

반응형