1. 使用-e进行参数传递,适合简单的命令,如
MysqL -uuser -ppasswd -e "create database db;"
必要时候请添加上-d -h等参数
2. 使用EOF进行传递,适合比较复杂的语句,比较创建表等;
MysqL -uuser -ppasswd <<EOF
use db;
create table tablename(
id varchar(36) NOT NULL,
col1 int default 1,
......
PRIMARY KEY (id)
EOF
3. 参数传递
CODE="SELECT * FROM table"
echo "${CODE}" | ${MysqLCMD}
4. 使用导入的方法:
create table `tablename`(
`id` varchar(36) NOT NULL,
`col1` int default 1,
......
PRIMARY KEY (`id`
令建一个test.sh脚本执行
use db;
source test.sql;
然后执行命令
cat test.sh | MysqL -uuser -ppasswd
或者直接用命令导入:
二. 今天出现的错误
1. 使用上面第2种方法的时候忘了把``去掉;
2. 使用-e传递赋权限的命令,少了个单引号,正确命令如下
MysqL -uuser -ppasswd -e "grant select,insert on db.* to $user@host identified by '"$password"'"