Вопрос по MySQL! Help

Автор shiko, 14 Февраля 2009, 20:38

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

shiko

Всем здравствуйте! Для работы с PHP и тестирования страничек, был установлен и настроен сервер apache+php+mysql. OS Linux Mandriva 2008.1. Сервер баз данных установлен, я проверил php.ini и наличие в нем строк которые должны быть раскоментированы
extension=mysql.so
mysql.default_port =
mysql.default_socket =
mysql.default_host = localhost
mysql,default_user =
mysql.default_password =

Теперь мне необходимо запустить его (как не совсем понятно?) и организовать его запуск таким образом что бы при последующей загрузки он стартовал раньше сервера apache, во избежании ошибки обращения к базе, подскажите каким образом это можно сделать  ??? 

Vicpo

Может не MSSql а MySQL?
service mysql startв мандриве MySQL стартует вперед Apache
можете убедиться сами вывод команды
ls /etc/rc.d/rc3.dищем mysql(mysql-max) и httpd и смотрим у кого цифра после S меньше тот и стартует раньше

shiko

Здравствуйте! Все запустилось СПАСИБО! Запустить не мог по причине ошибки в названии службы "mysqld", в статьях везде по разному пишут, как вы и говорили, нужно придерживаться своей платформы на которой работаешь! :D
[root@localhost shiko]# service mysqld start
MySQL is allready running:                                      [  OK  ]
[root@localhost shiko]# ls /etc/rc.d/rc3.d
K09dm@          S13partmon@     S29numlock@     S53avahi-daemon@  S54netfs@       S81winbind@  S95kheader@
K49netconsole@  S14acpid@       S40atd@         S53consolekit@    S54nfs-common@  S90crond@    S99local@
S03iptables@    S17alsa@        S50resolvconf@  S53cups@          S55keytable@    S90squid@
S04acpi@        S18sound@       S50syslog@      S53portmap@       S55mysqld@      S91smb@
S04dkms@        S24messagebus@  S51network@     S53shorewall@     S55sshd@        S92httpd@
S05harddrake@   S25haldaemon@   S52network-up@  S54mandi@         S80postfix@     S92lisa@
С очередностью запуска тоже все нормально, я и не предполагал, что будет так просто, само все запустилось и встало в нужном порядке и не надо ничего править.

shiko

Здравствуйте! Подскажите пожалуйста, вот я в целях удобной работы с базой данных MySQL установил phpmyadmin, который позволяет работать с базой через web-приложение. Запустив скрипт он мне предложил войти и ввести логин и пароль, которые я должен был установить на базу после ее установки т.е авторизовать ее. У меня вызывает сомнение команда:
mysql -u root -e "update user set password=password('new_password') where user='root'" mysql
сомнение в плане того как все таки корректно построить команду, куда вбивать пользователя а куда пароль, поскольку я с этими комментариями (пояснениями) в конец запутался  :(, понаставят понимаешь кавычек, пойди разберись потом, нет чтоб просто реальный пример команды дать.
А без авторизации меня не пропускает к базе phpmyadmin  :D

Iskander

ЦитироватьЗдравствуйте! Подскажите пожалуйста, вот я в целях удобной работы с базой данных MySQL установил phpmyadmin, который позволяет работать с базой через web-приложение. Запустив скрипт он мне предложил войти и ввести логин и пароль, которые я должен был установить на базу после ее установки т.е авторизовать ее. У меня вызывает сомнение команда:
mysql -u root -e "update user set password=password('new_password') where user='root'" mysql
сомнение в плане того как все таки корректно построить команду, куда вбивать пользователя а куда пароль, поскольку я с этими комментариями (пояснениями) в конец запутался  :(, понаставят понимаешь кавычек, пойди разберись потом, нет чтоб просто реальный пример команды дать.
А без авторизации меня не пропускает к базе phpmyadmin  :D
Команда построена правильно.
Итак, пойдем по пунктам.
mysql -u root -e "update user set password=password('new_password') where user='root'" mysql
-u root - выполнить вход от рута. По умолчанию root@localhost на мускуле без пароля.
mysql -u root -e "update user set password=password('new_password') where user='root'" mysql
Использовать базу mysql - служебная база данных.
и выполнить команду
update user set password=password('new_password') where user='rootВ таблице user находятся все пользователи базы данных.
Можешь сам посмотреть у кого какие права доступа - select * from mysql.user GНу и меняем пароль у рута =  password=password('new_password')
функция password("new_password") возвращает закодированный пароль.
Вышеприведенная команда идентична
localhost#mysql -u root
mysql> use mysql;
mysql> update user set password=password("new_pass") where user="root";
mysql> exit
Любовь и массовые расстрелы спасут мир.

shiko

  Да всеравно не получается, войти в phpmyadmin. Дал вот эту команду:
mysql -u root -e "update user set password=password('new_password') where user='root'" mysql вместо ('new_password') вбил новый пароль для root-a, после чего загружаю http://localhost/phpmyadmin/index.php и в загрузившейся странички  phpmyadmin ввожу:
login:       root
password: ********
 ДАЛЕЕ - inter
После чего выдает:
#1045 - Access denied for user 'root'@'localhost' (using password: YES) что то не так сделал? 

Iskander

Из консоли под данными учетными данными войти можешь?
Любовь и массовые расстрелы спасут мир.

shiko

Даю вот эту команду в консоли
#mysql -u rootсервер пропускает, а почему тормозит меня при входе в phpmyadmin не понятно ???

Iskander

ЦитироватьДаю вот эту команду в консоли
#mysql -u rootсервер пропускает, а почему тормозит меня при входе в phpmyadmin не понятно ???
А пароль не спрашивает в консоли?  :o
Значит у тебя рут без пароля.

Выполни не командой, а той последовательносью команд, что я писал выше.
Любовь и массовые расстрелы спасут мир.

shiko

Пароль в консоли не спрашивает :(
Сделал все как вы сказали в лучшем виде:
[root@localhost shiko]# mysql -u root
Welcome to the MySQL monitor.  Commands end with; or g.
Your MySQL connection id is 199
Server version: 5.0.45 Mandriva Linux - MySQL Standard Edition (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> exit
Bye
[root@localhost shiko]# mysql -u root
Welcome to the MySQL monitor.  Commands end with; or g.
Your MySQL connection id is 267
Server version: 5.0.45 Mandriva Linux - MySQL Standard Edition (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> use mysql;
Database changed
mysql> update user set password=password('Fk5dj$aS') where user="root";
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> exit
Bye
жаль только результат отрицательный, все равно не пропускает, может ошибка происходит еще по причине:
Невозможно загрузить расширение mcrypt! Проверьте настройки PHP.это сообщение у меня светится внизу после полей ввода логина и пароля, это может быть причиной проблемы? Честно говоря для того что бы тупо войти в базу я думаю связь с php не нужна, поэтому скорей всего вряд ли. ТОГДА НИЧЕГО НЕПОНИМАЮ!!!
А МОЖЕТ НУЖНО ПРОСТО ПЕРЕЗАГРУЗИТЬ СЛУЖБЫ И ВСЕ?!

Iskander

Тебя должно было перестать пускать под рутом без пароля.

Дай вывод команды
select User,Host,Password from mysql.user;
Любовь и массовые расстрелы спасут мир.

shiko

вот что выдал:
mysql> select User,Host,Password from mysql.user;
+------+-----------+------------------+
| User | Host      | Password         |
+------+-----------+------------------+
| root | localhost | 48f380ba412e6f2a |
| root | 127.0.0.1 | 48f380ba412e6f2a |
+------+-----------+------------------+
2 rows in set (0.00 sec)
может я спользователем на мудрил когда устанавливал phpmyadmin, я всем каталогам и файлам в директории "phpmyadmin" задал как ''root.apache''

Iskander

Вроде все правильно.

Щас только заметил про невозможность загрузки модуля mcript.
Я в php не слишком силен, но похоже на нужную вешь :)

Цитироватьэто сообщение у меня светится внизу после полей ввода логина и пароля, это может быть причиной проблемы? Честно говоря для того что бы тупо войти в базу я думаю связь с php не нужна
Как это не нужна? PHP это и есть фактически обработчик событий, приходящих от браузера. для входа с консоли - не нужна.
Любовь и массовые расстрелы спасут мир.

shiko

т.е получается что браузер возможно не может корректно обработать запрос при вводе логина и пароля из за этой ошибки? Так
Но тогда почему, меня пропускает в базу без пароля из консоли, когда он должен его у меня спросить?

jillsmitt

03 Декабря 2009, 14:41 #14 Последнее редактирование: 03 Декабря 2009, 15:04 от jillsmitt
Можно ли мне переименовывать БД? Как это сделать из-под "mysql -u root -p" ?
официальная документация дает мне RENAME - но у меня не получается им воспользоваться.
Обнови жуков!

Iskander

04 Декабря 2009, 17:40 #15 Последнее редактирование: 04 Декабря 2009, 17:41 от Iskander
Цитата: jillsmitt от 03 Декабря 2009, 14:41Можно ли мне переименовывать БД? Как это сделать из-под "mysql -u root -p" ?
официальная документация дает мне RENAME - но у меня не получается им воспользоваться.
В мускуле rename database появился, но очень быстро исчез, и вообще им не рекомендуют пользоваться. Нужно сделать дамп базы и залить в другую базу. Либо обычным дампом, либо просто на лету.
mysqladmin -u "username" -p "password" create new_db_name
mysqldump -u "username" -p "password" old_db_name | mysql -u "username" -p "password" new_db_name

Есть еще вариант переименовать папку базы,(только при остановленном мускуле!!!), но не рекомендую это делать. Надо перераздать привилегии и поправить в служебных таблицах кое что. (в mysql.db как минимум, мускуля под рукой нет). Говорят только с MyISAM работает. В общем нафиг.
Любовь и массовые расстрелы спасут мир.