привелегии

  • Автор темы spartan
  • Дата начала

spartan

Guest
Не понятно...

У меня платный хостинг, надо залить в базу содержимое .csv файла, а для этого, как известно нужна привелегия "file".
Обращаюсь к администратору за помощью, "выстави, мол, привелегию".
Он отвечает, что привелегию выстанавливать не разрешается, и советует поступать так (цитирую):

"на php делаешь скрипт который через командную строку вызывает mysql и заливает в базу указанный sql скрипт"

Объясните пожалуйста, что он имел в виду, и как это реализовать.
Буду очень благодарен за оказанную помощь.

-~{}~ 03.03.05 16:56:

Ну неужели никто не подозревает, как это перевести ?
Как я понял, надо через серверную ком. строку запустить там mysql, и только тогда исполнять скрипт заливки csv файла ?
Я прав ?...
 

_RVK_

Новичок
Попробуй ;)
А в следующий раз, для того что бы знающие люди обратили на тебя внимание, называй тему более информативно. А сейчас, если знающие люди обратят на тебя внимание, то не для того что бы помочь, а для того что бы закрыть тему, нарушающую правила форума.

-~{}~ 03.03.05 17:03:

1. mysql != mysqld
2.
на php делаешь скрипт который через командную строку вызывает mysql и заливает в базу указанный sql скрипт
 

spartan

Guest
Извините, сразу не сообразил как тему назвать - очень торопился.
Вот, получил совет:
$restore=`/usr/bin/mysql -u -H -P --password ';
Так ?
Если да, то как потом поставить эту команду на выполнение ?
 

_RVK_

Новичок
[m]system[/m]

Только что-то синтакчис команды не внушает доверия....
скорее что-то типа
/usr/bin/mysql -u user_name -p password database < file_name.sql


И еще раз обращаю внимание что речь не о csv а о sql скрипте.
 

spartan

Guest
_RVK_, спасибо, мне просто надо уточнить, как это из php сделать ?
Как прописывать данную команду в php-скрипте ?
Подскажи пожалуйста, если тебя не затруднит.

-~{}~ 03.03.05 18:20:

"И еще раз обращаю внимание что речь не о csv а о sql скрипте. "

Да, фэнкс, я понимаю.
 

_RVK_

Новичок
spartan
Я дал ссылку. Если права позаоляют, то ничего не мешает тебе попробовать.

-~{}~ 03.03.05 18:28:

и вообще! RTFM!
 

spartan

Guest
Млин, у меня на хосте стоит кэшер, который обновляется раз в полчаса.
Скрипты там тестить - сплошное мучение.
Вот я и спрашиваю, вдруг вы сталкивались с подобной проблемой.

-~{}~ 03.03.05 18:46:

Парни, среди вас большинство профессионалов, разве вам сложно дать ответ на столь лёгкий для вас вопрос ?
Подумаешь - назвал тему неправильно, это не повод отворачиваться, с кем не бывает, в следующий раз учту.

_RVK_, спасибо и на этом.

-~{}~ 04.03.05 08:36:

Благодарю, за то что тему переименовали, так вроде правильнее.
Хотя никто так и не ответил.
Всёж буду надеятся, что моя просьба найдёт таки человека, готового помочь.
Ещё раз спрашиваю, на всякий случай, знает ли кто - нибудь правильный синтаксис написания комманд в php, позволяющих юзать мускуль через ком. строку, наподобие (подсказано _RVK_):
"/usr/bin/mysql -u user_name -p password database < file_name.sql".
и их правильный запуск. А то проклятый кэшер на сервере сильно мешает.
Люди пожалуйста, не поленитесь - напишите эти пару строчек, я уже все варианты перепробовал - ничего не выходит, как же правильно писать ?
 

_RVK_

Новичок
spartan
Да я же тебе говорю [m]system[/m] [m]exec[/m]!!!
Потрудись почитать ман, плиз.
 

spartan

Guest
_RVK_ , я тебя отлично понял.
Громадное спасибо, но я мануал ещё вчера почти наизусть выучил, дело всего лишь в синтаксисе самого обращения к Мускулю, если б он был как в самом mysql.exe, то не было б проблем, но он же немного отличается.
Мелкие ошибки, но пока вроде что-то получается, стал сам разбираться, если возникнут ещё траблсы - обращюсь...
 

spartan

Guest
Гм, проблема просто смешная.
Представь, локально всё работает.
У меня локально доступ ко всем базам разрешён всем юзера, то есть указывать "-u" и "-p" не надо - всё отлично работает.
На хосте же придётся вписывать в строку
exec("usr\bin\mysql -u -p");
юзера и пароль.
Специально для этого сделал для одной базы ограничения по юзерам и поставил пароль.
И начилось смешное - толи не правильно пишу, то ли ещё что-то.
Пишу так:
exec("usr\bin\mysql -u test_user -p");
так как пароля нет - его не вписываю...
Ну ладно продолжаю перебирать варианты.
Если есть идеи и не жалко выдвинуть - буду благодарен выслушать.
 

Gas

может по одной?
exec("usr\bin\mysql -u test_user -p");
так как пароля нет - его не вписываю...
1. если пароля нет, то зачем -p ? если есть то пропиши и пароль -pPassword
2. тебе разве _RVK_ написал usr\bin\mysql, не нужно придумывать, пиши /usr/bin/mysql. Но совсем не факт что mysql туда установлен. Доступ по ssh есть?
 

_RVK_

Новичок
spartan
В Windows mysql требует указания имени пользователя. Если пароля нет, его писать ненужно.
Ну ладно продолжаю перебирать варианты
Метод "Научного тыка" не самый лучший метод. Еще раз говорю, читай документацию, хелпы, статьи в интернете. Это будет гораздо эфективнее. Тут тебе больше ничем помочь не могут, так как я и так уж разжевал, дальше некуда.
 

spartan

Guest
Возникла очередная проблема - на выполнения скрипта получаю ответ:

"max_join_size 1000000"

Почему мускуль ограничивает мою команду, и как этого можно избежать, я совсем запутался...

-~{}~ 04.03.05 15:13:

Или это вовсе не ограничение, а меня просто предупреждают??
 
Сверху