目录
mysql shell脚本
sh脚本编码
MYSQL:数据库存储内容输出到文本,再存入数据库
查看生成的文件编码
mysql shell脚本
本地连接及远程链接
#!/bin/bash#连接MySQL数据库Host=127.0.0.1User=userPASSWORD=passwordPORT=3306DBNAME="appdb"TABLENAME="resources"CREATE_DB_SQL="SELECT * FROM ${DBNAME}.${TABLENAME}" #mysql -h${Host} -port${PORT} -u${User} -p${PASSWORD} -D${DBNAME} -e"select count(*) from resources"#mysql -h"127.0.0.1" -port"3306" -uuser -ppassword -D"appdb" -e"select count(*) from resources"#本地连接mysql -h${Host} -port${PORT} -u${User} -p${PASSWORD} <<EOFuse ${DBNAME};SELECT count(*) FROM ${DBNAME}.${TABLENAME};COMMIT;EOFecho "create yes"
执行结果:
使用-e 方式可以直接执行sql语句:
mysql -h${Host} -P${PORT} -u${User} -p${PASSWORD} -D ${DBNAME} -e "${CREATE_DB_SQL}"
mysql -uroot -p123456是进入mysql的命令,前面的路径可以改成自己的绝对路径
<< EOF EOF 中间可以写出任意的mysql脚本
sh脚本编码
在命令行里执行mysql语句,在命令行不识别中文:为了在sh脚本里识别中文,sh脚本要设置如下格式,将文档格式转换为linux,编码转换为ANSI(实际上是GB3212中文)
MYSQL:数据库存储内容输出到文本,再存入数据库
如何对将数据库中的数据输出到文本文件,再将文本文件内容输入数据库?
一、输出到文本
1、进入数据库(已实验这个方法不行)
select * into outfile "d:/output.txt" from 表;
只是不能覆盖已存在的文件。
2、命令行 执行
mysql -e "select * from sgbase.LocalUser" > "/home/output.txt"
mysql < "C:/query.txt" > "C:/output.txt"
mysql -e "select * from 表" 库 > "C:/output.txt"
mysql -e "select * from 库.表" > "C:/output.txt"
< 表示从输入,> 表示输出到。
查看生成的文件编码
linux命令:file文件名