我必须重新编写一些停止工作的脚本。
有export.sh
脚本,它应该从数据库中复制和保存表:
DATAPUMP="/tmp/DataPump/" # Where tables have to be saved and where the old tables are saved
TABLELIST="MyShop5TableList" # Where names of tables are saved
DBSOURCE="somedb" # DB name
EXPORTDIR="../export/" # Where copies of tables have to be saved
rm ${DATAPUMP}*.export
for table in `cat ${TABLELIST}`; do
mysql -D ${DBSOURCE} -pPassword << EOF
select * into outfile "${DATAPUMP}${table}.export" from ${table};
EOF
done
cp ${DATAPUMP}* ${EXPORTDIR}
当我尝试运行脚本export.sh时,会出现错误消息:
rm: cannot remove '/tmp/DataPump/*.export': No such file or directory.
ERROR 1 (HY000): Can’t create/write to file "/tmp/DataPump/goods.export"(Errcode: 2)
# *and the same ERROR 1 for all other tables*
所以我尝试将DATAPUMP目录更改为DATAPUMP="tmp/DataPump/"
(开头没有“/”)。文件已删除,但仍显示ERROR 1消息(现在稍有不同):
ERROR 1 (HY000): Can’t create/write to file "var/lib/mysql/tmp/DataPump/goods.export"(Errcode: 2)
# *and the same ERROR 1 for all other tables*
文件路径已更改。我是bash脚本的新手,我真的不知道出了什么问题。 PS:脚本工作了很长时间......我们不知道发生了什么
答案 0 :(得分:0)
我不是100%肯定,但我敢打赌它是权限。尝试选择要写入文件的目录。然后运行脚本。
chown -R foo /some/path
这将根据/ some / path
中的路径目录将所有权改为foo