Forum Webscript.Ru
Общие => Базы данных => Тема начата: Sad Raven от 14 Июня 2002, 10:26:53
-
По порядку. Работаю я под Windows (XP Pro). Какое-то время назад начал изучение PHP. Прикупил книжек, пару дисков. Установил себе v4.1.1, установка прошла без проблем. Все работает как часы. Сервер - тот, что в Windows встроен (по моему IIS называется). За установку apache не брался, т.к. не нашел его под win (плохо искал, видимо).
/*пробовал работать в Linux (Mandrake 8.0) - не-е... удобство Windows я даже на все плюсы Unix-подобных систем не променяю*/
Каждый программист на определенном этапе своей деятельности понимает, что пытаться изобретать велосипед - глупо и нелогично. Тем более, что все велосипеды давным давно изобрели, и не одну собаку съели в процессе шлифования своих лисапедов. В частности - зачем придумывать системки управления базками данных, хранящихся в текстовых файлах, когда есть полноценные СУБД (работать с которыми, говорят, гораздо приятнее)?
Текстовые файлы хороши для простых приложений. Однозначно. Но...
Каждый программист на определенном этапе своей деятельности понимает (или это уже где-то было?), что его совершенно не устраивает волокита с устранением глюков при работе с текстовыми файлами.
Что-то я разошелся не по теме.
Короче. Дело такое. Скачал MySQL v3.23.51 под Win. Установил в C:\\mysql . А запустить не могу. Точнее, не знаю как. Help.
P.S. Пробовал C:\\mysql\\bin\\mysql -u root mysql --- а в ответ "борода":
ERROR 2003: Can\'t connect to MySQL server on \'localhost\' (10061)
-
mysql -u root mysql
Или это я не запустить, а войти от root пытался?
-
В инструкции по установке на MySQL.ru (http://www.mysql.ru) нашел вот такой скриптик:
$userName = "root"; //используется по умолчанию
$password = ""; //если пароль не задан, то имеет значение пустой строки
$hostName = "localhost"; //хост, на котором находится база MySQL
//Соединение с базой данных MySQL
if (!($link = mysql_connect($hostName, $userName, $password))) {
printf("
Произошла ошибка при соединении с базой данных %s
\\n", $hostName);
exit(); }
// Получение списка баз данных, находящихся на сервере
if (!($listOfDbs = mysql_list_dbs($link))) {
printf("
Ошибка в mysql_list_dbs, ошибка %s
\\n", mysql_error($link));
exit(); }
printf(" Базы данных на %s
\\n", $hostName);
// Получить список баз данных
$noOfDbs = 0;
while ($noOfDbs < mysql_num_rows($listOfDbs)) {
printf(" %s
\\n", mysql_tablename($listOfDbs, $noOfDbs));
$noOfDbs++;}
// Освободить указатель результата
mysql_free_result($listOfDbs);?>
Правда толку от него пока никакого - MySQL-сервер не пашет. Ошибка таже:
MySQL Connection Failed: Can\'t connect to MySQL server on \'localhost\' (10061)
В инструкции написано:Далее пишем mysql --standalone. Если после этого не появится никаких сообщений об ошибках, значит сервер успешно работает в фоновом режиме.
и... теоретически все должно работать.
Не работает ничего... :(
-
http://userguide.webservis.ru/homeserver-apache-forprint.shtml
-
Chs, мануал отличный, но... не получается. Поможешь разобраться?
Мои действия (по мануалу):
1. Запускаю базу без защиты.
2. В dos\'е набираю: c:\\mysql\\bin>mysql.exe - база радостно приветствует!
3. Смотрим пользователей: mysql>select mysql from user - никого нет
4. Пишу страшного вида строку: mysql>INSERT INTO user VALUES (\'localhost\',\'sadraven\',PASSWORD(\'mypass\'), \'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\'); - Тупик!
Ошибка такая:
ERROR 1064: you have an error in your SQL syntax near \' INSERT INTO user VALUES (\'localhost\',\'sadraven\',PASSWORD(\'mypass\'), \'Y\',\'Y\',\'Y\',\'Y\' \' in line 2
Где здесь собачка порылась?
-
Пропущен
шаг 2.5. ;)
use mysql;
-
вобще ты описываешь не полностью.
Во-первых как уже написал bhor тебе надо использовать базу mysql.
Во-вторых подобный запрос:
select mysql from user
должен выдать тебе ошибку, а не ничего, т.к. столбца \'mysql\' в таблице \'user\' нет.
в-третьих твой инсерт вполне работоспособный, поэтому проверь его корректность написания у себя.
-
Так, ну себя я добавил. А как посмотреть-то, что я там?
c:\\mysql\\bin>mysql.exe
mysql>use mysql
mysql>select * from user - опять ПУСТО
?!
-
все сначала и по порядку
1. Запускаю базу без защиты.
2. В dos\'е набираю: c:\\mysql\\bin>mysql.exe
2.5. use mysql; :beer:
3. Смотрим пользователей: mysql>select *from user;
4. Пишу страшного вида строку: mysql>INSERT INTO user VALUES (\'localhost\',\'sadraven\',PASSWORD(\'mypass\'), \'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y
\',\'Y\');
5. select*from user;
Вот тут ты должен показатся.
-
5. select*from user;
Вот тут ты должен показатся.
до этого все равно оно должно показывать пользователей \'root\' и \'\' для localhost и \'%\' - итого 4 строчки
-
1. Запускаю базу без защиты.
2. В dos\'е набираю: c:\\mysql\\bin>mysql.exe
2.5. use mysql;
3. Смотрим пользователей: mysql>select *from user;
4. Пишу страшного вида строку: mysql>INSERT INTO user VALUES (\'localhost\',\'sadraven\',PASSWORD(\'mypass\'), \'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y\',\'Y
\',\'Y\');
5. select*from user;
Вот тут ты должен показатся.
Есть!
Всем спасибо! Chs :beer:
bhor :beer:
fidget :beer:
-
Sad Raven
Ещо полезно после того, как в системные таблах права или юзеров настраиваешь выдать апосля команду:
FLUSH PRIVILEGIES
-
выдать апосля команду:
FLUSH PRIVILEGIES
BigHarry, в мануале это есть. Перед exit;
Но все равно, thanks.
-
Что-то я не понимаю, из-за чего весь сыр-бор разошелся?
У меня вообще проблем не было с MySQL (кстати, под Win 98 SE).
Скачал с их сайта версию 3.23.49, проинсталлировал.
Зашел в папку /bin/ , запустил файл mysqld-max.exe.
Для административных функций там есть замечательная программка winmysqladmin.exe (базу данных там создать или еще чего), для прочих - mysqlmanager.exe (всякие селекты с криэйтами).
-
Вот это да!
Если бы ты не сказал, я бы так и не знал, что такая вещь калссная есть. Все-таки куда приятнее, чем в досе...
P.S. Вывод. Чаще по папкам лазить надо.