我需要转储一个表进行日常传输。
mysqldump 需要 LOCK TABLES 权限。 不幸的是,LOCK TABLES不适用于表级别,仅适用于数据库级别,我不想给MySQL用户那么多访问权限。有没有办法做这样的事情...
/usr/bin/mysql -uusername -ppassword -D daterbase -e "select * from table" > outfile.sql
。但它以 SQL 格式而不是查询结果格式输出?
如果该表是 InnoDB 表,则可以使用 mysqldump --single-transaction dbname tablename
。
通过使用事务,它不需要锁定任何内容。
或者,您可以使用SELECT ... INTO OUTFILE
但转储为制表符分隔的文本格式,而不是 SQL 格式。有关详细信息,请参阅 mysql。