语法
内嵌式(sql直接在sh脚本内嵌套)
mysql -P 端口号 -u用户名 -p密码 -e "需要被执行的sql"
独立式(sql在单独的文件中)
前提:将sql写在创建的test.sql文件中,并且和脚本文件在同级目录下
3种执行方式
- mysql -P 端口号 -u用户名 -p密码 < test.sql
- mysql -P 端口号 -u用户名 -p密码 -e "source test.sql"
- mysql -P 端口号 -u用户名 -p密码 -e "\. test.sql"
最近在搞用脚本初始化msyql8,需要在shell里面执行初始化msyql的sql语句,尝试了好多后成功了,分享给大家。
/usr/local/mysql8/bin/mysqld --initialize
password=`sudo grep "A temporary password" /usr/local/mysql8/data/error.log| awk '{ print $NF }'`
mysql -uroot -p$password --connect-expired-password -e "
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
create user 'root'@'%' identified by '123456';
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;" || exit -1
`--connect-expired-password `:执行修改密码的语句时需要加。
`|| exit -1 `:执行失败时退出脚本执行,方便做别的逻辑操作,不加的话即使sql执行失败,脚本也会继续执行。根据业务场景判断是否加。
更多推荐
shell脚本执行sql语句
发布评论