Script executeren (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

De mysql-client is bedoeld voor interactief gebruik, maar je kunt er ook scripts (bestanden met SQL-commando's) mee uitvoeren.

Gebruikelijke syntaxis:

mysql -u username -ppassword -h db_name < script_file

of

mysql -u username -ppassword -e executiestring

Als je een .my.cnf-bestand aanmaakt (zie Installatie MySQL), dan kun je de credentials achterwege laten (heel erg prettig!):

mysql db_name < script_file

Indien het eerste statement in het bestand een use db_name-commando is, kan het ook zo:

mysql < script_file

Je kunt scriptbestanden ook executeren vanuit mysql:

source bestandsnaam

of

\. bestandsnaam

Feedback

Er zijn in ieder geval twee manieren om feedback te krijgen tijdens executie van een script.

Verbose

De eerste methode is middels --verbose. Bv.:

mysql < script-010-dwh-main.sql --verbose

Select-statements

De tweede methode is, door select-statements op te nemen in het script. Net als debuggen dus. Waarschijnlijk Niet altijd even practisch.

Direct strings executeren

Bv.:

mysql --execute "show databases;"

Meerdere strings executeren vanaf bash

Het kan! [1]. Voorbeeld:

echo "Create labels..."
sql="use dwh; call kbo_label('"$site_db_name"');"
mysql <<EOF
	$sql
EOF

Hier wordt alles tot aan het keyword "EOF" geëxecuteerd.

Zie ook

Bronnen