Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Исполнение sql запроса в скрипте (http://forum.oszone.net/showthread.php?t=87801)

Negativ 30-07-2007 13:08 620341

Исполнение sql запроса в скрипте
 
Задача:
Необходимо выполнять sql запрос каждые сутки для оптимизации одной из таблиц.

Что делаю:
скрипт
Код:

#!/bin/sh

my='/usr/local/bin/mysql --user=root --password=pass base
SQLS='--execute=/usr/local/rc.d/mysql/scripts/opt_user_stats.sql;'

$my $SQLS

запускаю. Mysql:
./empty_user_stats.sh
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear '/usr/local/rc.d/mysql/scripts/opt_user_stats.sql' at line 1

содержимое opt_user_stats.sql:
OPTIMIZE TABLE "user_stat";

Причем в интерактивном режиме данный sql запрос выполняется.

Как реализовать? Где ошибка?

Раскопал дальше.
Код:

#!/bin/sh
my='/usr/local/bin/mysql --user=root --password=pass base'
path='/usr/local/rc.d/mysql/scripts/opt_user_stats.sql'

$my < $path

В opt_user_stats.sql
OPTIMIZE TABLE user_stat;

Ошибка:
./empty_user_stats.sh
./empty_user_stats.sh: cannot open /usr/local/rc.d/mysql/scripts/opt_user_stats.sql: No such file or directory

Оказывается mysql может прочитать файл только из корня. Сделал симлинк в корне на файл и все заработало.
Соответственно вопрос, почему не mysql не может прочитать файл из /usr/local/rc.d/mysql/scripts ?

mar 09-08-2007 14:59 625354

Negativ,
скорей всего в системе, под которой Вы сидите не определены пути для пользователя, от имени которого Вы запускали mysql. Определить можно в файле конфигурации пользовательского шелла в домашнем каталоге этого самого пользователя.


Время: 13:56.

Время: 13:56.
© OSzone.net 2001-