There are three(3) things you need to do 1. Provide a list to tables that you want to dump row by row 2. Use --skip-extended-insert, which forces each `INSERT` to be one row 3. Use [--hex-blob][1] Here is such a script MYSQL_USER=root MYSQL_PASS=rootpass MYSQL_CONN="-h127.0.0.1 -P3306 --protocol=tcp -u${MYSQL_USER} -p${MYSQL_PASS}" DB_TO_DUMP=mydb TBLISTFILE=/tmp/tables_in_${DB_TO_DUMP}.txt TABLES_TO_SPLIT_BY_ROW="tb1 tb2 tb3" SQL="SELECT table_name FROM information_schema.tables" SQL="${SQL} WHERE table_schema='${DB_TO_DUMP}'" mysql ${MYSQL_CONN} -ANe"${SQL}" > ${TBLISTFILE} TBLIST="" for TB in `cat ${TBLISTFILE}` ; do TBLIST="${TBLIST} ${TB}" ; done DT=`date +"%Y%m%d%H%M%S"` for TB1 in `echo "${TBLIST}"` do ROW_BY_ROW=0 for TB2 in `echo "${TABLES_TO_SPLIT_BY_ROW}"` do if [ "${TB1}" == "${TB2}" ] ; then ROW_BY_ROW=1 ; fi done MYSQLDUMP_OPTIONS="" if [ ${ROW_BY_ROW} -eq 1 ] then MYSQLDUMP_OPTIONS="--hex-blob --skip-extended-insert" fi DUMPFILE=${TB1}_${DT}.sql mysqldump ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} ${DB_TO_DUMP} ${TB1} > ${DUMPFILE} done Just supply the name of the database in the `DB_TO_DUMP` along with the tables whose rows are to be one by one in the `TABLES_TO_SPLIT_BY_ROW` variable. Please note how the dumpfile name has a datetime appended to the table name so you can do some versioning based on the datetime. You can change that to be versioned any way you wish. [1]: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob