首页 > 解决方案 > 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 ''

如果有帮助,我可以提供整个脚本。

标签: linuxbash

解决方案


推荐阅读