1

I created a .sh file in ubuntu to create and execute the following commands and my .sh files and the following mysql scripts are in the same folder. I manually created the test database and I created and ran the scirpts individually.

content of papol.sh

mysql -h localhost -u root -padmin < apple.sql
mysql -h localhost -u root -padmin < getdb.sql

and when i execute the command bash -x papol.sh it throws me the following error

+ mysql -h localhost -u root -padmin
: No such file or directoryapple.sql
+ mysql -h localhost -u root -padmin
: No such file or directorygetdb.sql

I could not find a reason for this. I would be grateful if anyone can help

1 Answer 1

2

Update

During my next session, I realized mysql wasn't recognized by terminal. I realized i'm dumb and was just always doing things wrong. Do not use alias to resolve to a binary.

Example, do not use alias mysql="/Applications/MAMP/Library/bin/mysql"

Instead

export PATH=$PATH:/Applications/MAMP/Library/bin/

This will allow you to use the binaries appropriately via bash, and you'll also gain access to all mysql binaries including mysqladmin etc from the terminal as well. :) Happy scripting!

Example script with appropriate environment variables:

#!/bin/bash

echo ""
echo Reloading Database 
echo ""
echo Using
echo PROJECT_BUILD_HOME: $PROJECT_BUILD_HOME
echo MYSQL: $(which mysql)
echo PHP: $(which php)
echo ""
echo ""

mysqladmin -u root -pmypass drop projectbuild
mysqladmin -u root -pmypass create projectbuild
gunzip < $PROJECT_BUILD_HOME/pack/projectbuild.sql.gz | mysql -u root -pmypass projectbuild

Old answer below

I had mysql setup in my users .profile as alias mysql="/path/to/mysql".

Instead,

I used export mysql=/path/to/mysql

And in my bash script, I used $mysql.

Example

cat /path/to/my/file | $mysql -h localhost -u root -padmin
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.