Първо, мога да ви дам отговора за един таблица:
Проблемът с всички тези INTO OUTFILE или --tab=tmpfile (и -T/path/to/directory ) отговорът е, че изисква стартиране на mysqldump на същия сървър като MySQL сървър и притежаващи тези права за достъп.
Моето решение беше просто да използвам mysql (не mysqldump ) с -B параметър, вмъкнете израза SELECT с -e , след това масажирайте ASCII изхода с sed и завърши с CSV, включително ред на полето на заглавката:
Пример:
mysql -B -u username -p password database -h dbhost -e "SELECT * FROM accounts;" \
| sed "s/\"/\"\"/g;s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g"
"id","login","password","folder","email""8","mariana","xxxxxxxxxx","mariana","""3","squaredesign","xxxxxxxxxxxxxxxx"," squaredesign","atex. ""4","miedziak","xxxxxxxxxx","miedziak"," ""5","Sarko","xxxxxxxxx","Sarko","""6","LogitransPoland","xxxxxxxxxxxxxx","LogitransPoland","""7","Amos","xxxxxxxxxxxxxxxxxx"," Amos","""9","Annabelle","xxxxxxxxxxxxxxxx","Annabelle","""11","Bandfathers andSons","xxxxxxxxxxxxxxxx","BrandfathersAndSons","""Gro","Imagine", "xxxxxxxxxxxxxxxx","ImagineGroup","""13","EduSquare.pl","xxxxxxxxxxxxxxxx","EduSquare.pl","""101","tmp","xxxxxxxxxxxxxx"," a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f0a7bfb2b3ddc1c4de83818591829594958399979ede91849c918383999979ede91849c918383999979ede91849c91838399919f91838399919f99db99999999999999999999999999999999999999999999999999999 "
Добавете > outfile.csv в края на този едноред, за да получите своя CSV файл за тази таблица.
След това вземете списък с всички вашите таблици с
mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"
Оттук нататък е само още една стъпка да направите цикъл, например в обвивката на Bash, за да преминете през тези таблици:
for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do
echo .....;
done
Между do и ; done вмъкнете дългата команда, която написах в част 1 по-горе, но заменете името на вашата таблица с $tb вместо това.