相关疑难解决方法(0)

如何在MySQL中收缩/清除ibdata1文件

我在localhost中使用MySQL作为在R中执行统计的"查询工具",也就是说,每次运行R脚本时,我创建一个新数据库(A),创建一个新表(B),将数据导入B ,提交查询以获得我需要的内容,然后我删除B并删除A.

它对我来说很好,但我意识到ibdata文件大小正在迅速增加,我在MySQL中没有存储任何内容,但ibdata1文件已超过100 MB.

我使用或多或少的默认MySQL设置进行设置,有没有办法可以在一段固定的时间后自动缩小/清除ibdata1文件?

mysql database innodb

550
推荐指数
8
解决办法
52万
查看次数

mysqldump与db在一个单独的文件中

我正在编写一个单行命令,它将所有数据库备份到各自的名称中,而不是使用在一个sql中转储所有数据库.

例如:db1保存到db1.sql,db2保存到db2.sql

到目前为止,我收集了以下命令来检索所有数据库.

mysql -uuname -ppwd -e 'show databases' | grep -v 'Database'
Run Code Online (Sandbox Code Playgroud)

我打算用awk来管它做类似的事情

awk '{mysqldump -uuname -ppwd $1 > $1.sql}'
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我是bash的新手,所以我的想法可能是错的.
我该怎么做才能让它以各自的名义导出数据库?

更新:
好的,必须最终设法让它从下面的提示工作.
这是最后的脚本

# replace [] with your own config
# replace own dir to save
# echo doesn't work. hmm...

mysql -u[uname] -p'[pwd]' -e "show databases" \
| grep -Ev 'Database|information_schema' \
| while read dbname; \
do \
echo 'Dumping $dbname' \
mysqldump -u[uanme] -p'[pwd]' $dbname > ~/db_backup/$dbname.sql;\
done
Run Code Online (Sandbox Code Playgroud)

回声部分虽然不起作用.

bash backup awk mysqldump

26
推荐指数
4
解决办法
3万
查看次数

标签 统计

awk ×1

backup ×1

bash ×1

database ×1

innodb ×1

mysql ×1

mysqldump ×1