我需要转储一张桌子以便每日转移 mysqldump需要LOCK TABLES权限。不幸的是,LOCK TABLES不适用于表级别,仅适用于数据库级别,并且我不想给MySQL用户提供那么多访问权限。 有办法做某事......
/usr/bin/mysql -uusername -ppassword -D daterbase -e "select * from table" > outfile.sql
...但是以SQL格式而不是查询结果格式输出?
答案 0 :(得分:2)
如果表是InnoDB表,则可以使用mysqldump --single-transaction dbname tablename
。
通过使用交易,它不需要锁定任何东西。
或者您可以使用SELECT ... INTO OUTFILE
,但转储采用制表符分隔的文本格式,而不是SQL格式。有关详细信息,请参阅mysql。