sql_handle->datab"/> sql_handle->datab">

首頁 >後端開發 >php教程 >php在linux下调用system的有关问题

php在linux下调用system的有关问题

WBOY
WBOY原創
2016-06-13 10:14:341084瀏覽

php在linux下调用system的问题
请教大家一个问题
$cmd = "\"".$basedir."bin\mysqldump.exe\" --default-character-set=latin1 -uroot -ptest ".$this->sql_handle->database." > ".$doc_root."\\test\\test.sql";
$stat = -1;
system($cmd,&$stat);
这段代码在windows里可以正确的导出数据库

没有用过linux,请教大家,在linux下应该怎么修改?

------解决方案--------------------
--default-character-set=latin1 -u root -p test 参数名与参数需用空格格开
".$doc_root."\\test\\test.sql" 路径分隔符是/
------解决方案--------------------
这个是个很简单的脚本 你自己参考吧

#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"

# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date %F`

# TODO
$BIN_DIR/mysqldump –opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

------解决方案--------------------
linux 用exec


exec("mysqldump -uroot -p database table > /www/..... /sql.sql ");
------解决方案--------------------
/usr/local/bin/mysqldump
没有 .exe
------解决方案--------------------
最好切换apache/nginx用户执行下那个mysqldump命令,确定不是权限问题。
------解决方案--------------------
/usr/local/bin/mysqldump -uusername -ppwd dbname > /usr/local/www/data/test/test.sql
确定有/usr/local/bin/mysqldump 这个文件,具体可用
var_dump( system("ls /usr/local/bin") );看看有没有'mysqldump'
修改/usr/local/www/data/test/权限到所有用户可写
一直都是直接在本机终端下做这些,用php没做过所以只能给你这点建议

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn