1. 程式人生 > >mysql下普通使用者備份資料庫時無lock tables許可權的解決方法

mysql下普通使用者備份資料庫時無lock tables許可權的解決方法

由於  我們正式伺服器上面mysql的root賬戶設定的只允許localhost登入mysql, 但是備份是在我自己的開發的電腦上,就造成了 普通使用者使用mysqldump命令無法備份sql  會報錯,

Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES.

怎麼解決呢?總不能吧root賬戶的host設定成%  所有ip都可以連結到mysql吧,這樣未免是  捨棄了 安全,用下面的方法可以解決!

解決一: 

在mysqldump 命令後面加上--skip-lock-tables選項即可。即: 


mysqldump --opt --host=139.**.**.106 --default-character-set=utf8  -u HONGLINCHEN --password=1234 --skip-lock-tables gmfserver>"D:\mysqlbackup\backup_gmfserver_%YMD%.sql"

解決2: 

使用具有lock許可權的使用者進行備份。 或者 你把備份的批處理放在阿里雲伺服器上 然後用root賬戶去備份

例如吧這個命令拿到正式服執行mysqldump --opt --host=localhost --default-character-set=utf8  -u root --password=1234 gmfserver>"D:\mysqlbackup\backup_gmfserver_%YMD%.sql"