Mulighed 1:Indsæt dette i din procedure for at udskrive "kommentar" til stdout, når det kører.
SELECT 'Comment';
Mulighed 2:Indsæt dette i din procedure for at udskrive en variabel med den til stdout:
declare myvar INT default 0;
SET myvar = 5;
SELECT concat('myvar is ', myvar);
Dette udskriver myvar is 5
til stdout, når proceduren kører.
Mulighed 3, Opret en tabel med én tekstkolonne kaldet tmptable
, og push beskeder til den:
declare myvar INT default 0;
SET myvar = 5;
insert into tmptable select concat('myvar is ', myvar);
Du kan lægge ovenstående i en lagret procedure, så alt du behøver at skrive er dette:
CALL log(concat('the value is', myvar));
Hvilket sparer et par tastetryk.
Mulighed 4, Log beskeder til fil
select "penguin" as log into outfile '/tmp/result.txt';
Der er meget tunge restriktioner på denne kommando. Du kan kun skrive outfilen til områder på disken, der giver 'andre'-gruppen oprettelse og skrivetilladelse. Det burde virke at gemme det i /tmp-mappen.
Når du først har skrevet outfilen, kan du heller ikke overskrive den. Dette er for at forhindre crackere i at roote din boks, bare fordi de har SQL injiceret dit websted og kan køre vilkårlige kommandoer i MySQL.