查看表名中含有 scene 的数据库表:_sql
mysql -utestwx -p'verycomplexpassword' -h10.0.0.91 --database=sparkr -e"show tables" | grep scene
awk 过滤某个区间的行:
awk 'NR>26150025 {print $0}' /var/log/redis_to_mysql.log
数据库导出为 csv:
mysql -uusernamet -h10.0.0.117 -p'verycomplexpassword' --database=test -e"select sid,title from ald_cms_scene;" | sed "s/\t/,/g" > scene.csv
导出的 csv 格式如果打开为乱码, 可以用 iconv
将 csv 的编码转换为 GB18030:
mysql -uusernamet -h10.0.0.117 -p'verycomplexpassword' --database=test -e"select sid,title from ald_cms_scene;" | sed "s/\t/,/g" | iconv -f UTF8 -t GB18030 > /tmp/scene.csv
可以改造下,把上面的代码保存为 shell 脚本, 把 sql 语句作为参数传进去:
mysql -uusernamet -h10.0.0.117 -p'verycomplexpassword' --database=test -e"$1" | sed "s/\t/,/g" | iconv -f UTF8 -t GB18030 > /tmp/scene.csv
mac 下 csv 乱码的假觉方法:
iconv -f UTF8 -t GB18030 yw.csv > b.csv
mysqldump
sudo apt-get install mysql-client
mysqldump 可以导出某个表的部分数据, 使用 where
条件即可:
mysqldump -uxxxxx -p'abc123' -h10.0.0.190 test table_name --where=" day='2018-01-14'" > /tmp/20180104.sql
网友评论