mysqldump: Got error: 1449: The user specified as a definer('root'@'192.200.1.16') does not exist when using LOCK TABLES
kindly give the solution on above error.
Its better to use first mysqldump with --single-transaction, like:
mysqldump --single-transaction -u root -p mydb > mydb.sql
If above not working try below one.
You have to replace the definer's for that procedures/methods, and then you can generate the dump without error.
You can do this like:
UPDATE `mysql`.`proc` p SET definer = 'root@localhost' WHERE definer='[email protected]'
For mysql 8.0 the table proc does no longer exist. Try
SELECT * FROM information_schema.routines;
I faced the same problem after I copied all the views and tables from another host.
It worked after I used this query to change all definers in my database.
SELECT CONCAT("ALTER DEFINER=`youruser`@`host` VIEW ",
table_name,
" AS ",
view_definition, ";")
FROM information_schema.views
WHERE table_schema='your-database-name';