linux - bash 脚本跳过创建数据库创建
问题描述
这个函数应该配置 mariadb (with pw) 并且在成功配置之后它应该继续创建一个数据库,但它似乎跳过了这个命令。
代码片段:
if [ $configure_sql = 1 ]
then
echo -e "${RED}Achtung:${CYAN} Es wird nun die Datebank konfiguriert, breche diesen Prozess nicht ab."
secureinstall=$(expect -c "
spawn mysql_secure_installation
expect \"Enter current password for root (enter for none): \"
send \"n\r\"
expect \"Change the root password? \[Y/n\] \"
send \"y\r\"
expect \"New password: \"
send \"securepw\r\"
expect \"Re-enter new password: \"
send \"securepw\r\"
expect \"Remove anonymous users? \[Y/n\] \"
send \"y\r\"
expect \"Disallow root login remotely? \[Y/n\] \"
send \"y\r\"
expect \"Remove test database and access to it? \[Y/n\] \"
send \"y\r\"
expect \"Reload privilege tables now? \[Y/n\] \"
send \"y\r\"
expect eof
")
echo "$secureinstall"
echo -e "\033[35mErstellen der Datenbank.\033[0m"
sleep 5
createdb=$( mysql -e "CREATE DATABASE testdb;" )
echo "$createdb"
echo -e "\033[35mNun wird die Datenbank mit Sysbench Test Content gefüllt!\033[0m"
sleep 5
mysql_prepare=$( mysql_prepare )
echo "$mysql_prepare"
echo -e "\033[35mAlles erledigt, weiter gehts!\033[0m"
sleep 5
clear
fi
bash -x 的日志:
Erstellen der Datenbank.
+ sleep 5
++ mysql -e 'CREATE DATABASE testdb;'
++ sysbench oltp_read_write --db-driver=mysql --table-size=1000000 --mysql-db=testdb --mysql-user=root --mysql-password=securepw --time=60 --max-requests=0 --num-threads=1 run
++ grep queries:
++ awk '{print $2}'
+ createdb=
+ echo ''
如果有帮助,我可以提供整个脚本。
解决方案
推荐阅读
- entity-framework-5 - 运行 SqlQuery 按日期计算行数
- angularjs - 在angularjs中重定向到具有不同url名称的同一页面
- java - 为什么我的 JSON 在 Internet 上发布时会更改类型?
- dart - Flutter PaginatedDataTable rowsPerPage
- python - 具有相同列名并应用聚合函数的内部合并数据框
- reactjs - React 状态具有数组作为属性,但是当传递它时它会嵌套到一个同名对象中?
- android - public open fun get() Picasso 的争论太多了!在 com.squareup.picasso.Picasso 中定义
- jquery - Jquery ajax禁用提交按钮,直到表单完成
- spring-boot - 使用 -XX:+UseSerialGC 与 -XX:+UseParallelGC 运行 Spring Boot 应用程序
- javafx - 组合框在其他 Windows 计算机上看不到系统字体