Ralph
asked on
How can I enable XAMPP to "SELECT ... INTO OUTFILE 'myfile.txt' ;"
HI,
I hope this makes sense, coming up on 24 hours awake now, so please bear with me.
Of course as mysql's root I can run the query and it puts the file into
XAMPP/xamppfiles/temp just fine.
Bits of info I know and understand:
In /Applications/XAMPP/xamppf iles/etc/h ttpd.conf
I see:
User daemon
Group daemon
Also:
<Directory />
AllowOverride none
Require all denied
</Directory>
How would I (should I) configure another directory entry with allow into it?
<Directory /whatpathdoIstartwithhere>
AllowOverride ????
Require ?? ?????
</Directory>
What else is there?
Thanks from Seattle.
I hope this makes sense, coming up on 24 hours awake now, so please bear with me.
Of course as mysql's root I can run the query and it puts the file into
XAMPP/xamppfiles/temp just fine.
Bits of info I know and understand:
In /Applications/XAMPP/xamppf
I see:
User daemon
Group daemon
Also:
<Directory />
AllowOverride none
Require all denied
</Directory>
How would I (should I) configure another directory entry with allow into it?
<Directory /whatpathdoIstartwithhere>
AllowOverride ????
Require ?? ?????
</Directory>
What else is there?
Thanks from Seattle.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
The select works, but no data is output when XAMPP runs it.
I get a result file when I run it as ralph@localhost.
ralph has SELECT, INSERT, UPDATE, DELETE, FILE Global privs,
and NONE set for database 'dbviablitz'.
The file shows up in /Applications/XAMPP/xamppf iles/var/m ysql.
The PHP script generates this command:
SELECT 'Fri Dec 12 4:50:46 CET 2014', 'DnD', 'dbviablitz', '', '' INTO OUTFILE 'thefilename.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
When run by PHP it generates no output file.
When I run it at the mysql prompt I do.
========================== =========
Some entries in my http.conf file follow.
But first, could it be WHO the server is running as?
drwxrwxr-x 11 root admin 374 Dec 11 19:50 var
drwxrwxr-x 17 _mysql _mysql 578 Dec 11 20:19 mysql
----------------------
ServerRoot "/Applications/XAMPP/xampp files"
----------------------
<IfDefine JUSTTOMAKEAPXSHAPPY>
LoadModule php4_module modules/libphp4.so
LoadModule php5_module modules/libphp5.so
</IfDefine>
----------------------
<IfModule unixd_module> # Which I have
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>
----------------------
ServerName localhost
----------------------
DocumentRoot "/Applications/XAMPP/xampp files/htdo cs"
<Directory "/Applications/XAMPP/xampp files/htdo cs">
Options Indexes FollowSymLinks ExecCGI Includes
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
# since XAMPP 1.4:
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
----------------------
========================== ========== =
I can see nothing of interest in .../xamppfiles/log
or in any logs c/o the Console App.
----------------------
What am I missing?
Surely daemon mysql has FILE privilege. Shouldn't it?
I get a result file when I run it as ralph@localhost.
ralph has SELECT, INSERT, UPDATE, DELETE, FILE Global privs,
and NONE set for database 'dbviablitz'.
The file shows up in /Applications/XAMPP/xamppf
The PHP script generates this command:
SELECT 'Fri Dec 12 4:50:46 CET 2014', 'DnD', 'dbviablitz', '', '' INTO OUTFILE 'thefilename.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
When run by PHP it generates no output file.
When I run it at the mysql prompt I do.
==========================
Some entries in my http.conf file follow.
But first, could it be WHO the server is running as?
drwxrwxr-x 11 root admin 374 Dec 11 19:50 var
drwxrwxr-x 17 _mysql _mysql 578 Dec 11 20:19 mysql
----------------------
ServerRoot "/Applications/XAMPP/xampp
----------------------
<IfDefine JUSTTOMAKEAPXSHAPPY>
LoadModule php4_module modules/libphp4.so
LoadModule php5_module modules/libphp5.so
</IfDefine>
----------------------
<IfModule unixd_module> # Which I have
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>
----------------------
ServerName localhost
----------------------
DocumentRoot "/Applications/XAMPP/xampp
<Directory "/Applications/XAMPP/xampp
Options Indexes FollowSymLinks ExecCGI Includes
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
# since XAMPP 1.4:
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
----------------------
==========================
I can see nothing of interest in .../xamppfiles/log
or in any logs c/o the Console App.
----------------------
What am I missing?
Surely daemon mysql has FILE privilege. Shouldn't it?
ASKER
The select works, but no data is output when XAMPP runs it. I get a result file when I run it as or myself.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Turns out without giving a path for the OUTPUT FILE it goes into xamppfiles/var/mysql
which is a protected DIR from the world.
I used an indirect path to locate it into xamppfiles/temp, where my cron job picked it up and removed it from there.
NOT the most secure, but for now it will do. I'll get with godaddy to find out what they recommend.
Thanks all.
which is a protected DIR from the world.
I used an indirect path to locate it into xamppfiles/temp, where my cron job picked it up and removed it from there.
NOT the most secure, but for now it will do. I'll get with godaddy to find out what they recommend.
Thanks all.
ASKER
I'm working on those directives now.
I have yet to find a clear definition of them, but I'll keep looking.
All I want is to be able to SELECT... OUTPUT TO DATAFILE,
and NO http:// access.