Задавайте вопросы, мы ответим
Вы не зашли.
Я новичок в mysql, хотел подключить простейший скрипт новостей. Я создал базу skytende_mysql в самой базе данных и в cpanel создал skytende_mysql ввел данные в config.php, пароль БД, которую создал в CPANEL, когда открываю простой скрипт проверки работает ли БД, пишет да и версию БД (5.0.67 - Communit). А подключаю скрипт - ошибка. Помогите, пожайлуста.
Неактивен
Очевидно, проблема в Вашем скрипте. Без текста ошибки подробнее сказать ничего не смогу.
Неактивен
Объясните, пожалуйста, несколько моментов начинающему.
Допустим, имеется база MySQL с несколькими сайтами внутри и работающие PHP и Apache.
Проверена работа всего по отдельности и доступ PHP к MySQL (через скрипт index.php в дефолтной папке Apache). Последнее тоже работает, но не могу понять:
1) Как, собственно, сделать, чтобы эти несколько сайтов были доступны по заголовкам запросов браузеров? Должен происходить автоматический запрос через index.php нужных сайтов из базы на основе заголовков запросов или это нужно разруливать через конфигурации виртуальных серверов Apache? Или всё вообще должно реализовывать автоматически без "index.php".
Повторю в других словах. Мне хотелось узнать: после того как Apache получает имя сайта в заголовке запроса он автоматически адресует запрос на индексную страницу в базе данных через PHP или он ищет в директории сайта скрипт "index.php" и запрос к базе данных по поводу контента идёт через этот скрипт. Этот index.php должен лежать в базе или в директории сервера?
Допустим, я пропишу виртуальные сервера в конфиге Apache. Мне нужно ещё для каждого сервера делать корневую директорию с "index.php" (для перенаправления запросов в MySQL) или нет? Сейчас у меня прописанные виртуальные хосты недоступны, Apache пишет, что нет таких путей, как они прописаны в базе MySQL.
Сейчас у меня нет возможности проверить это практически, поскольку IP сервера (он чисто экспериментальный) и привязка к нему имён сайтов из имеющейся базы MySQL не заявлены в глобальном DNS.
Был бы очень благодарен за способ как-то обойти это, например ручной пропиской требуемого имени сайта в заголовке запроса браузера (или пусть это будет скрипт). Есть ли такая возможность?
К большому сожалению, я совсем не смог найти эту информацию в имеющихся книгах или инете.
2) Можно ли и как через index.php сделать подключение какого-нибудь одного сайта из базы MySQL?
3) Как правильно подключаться через index.php к MySQL?
Имеются два варианта скриптов "index.php" (как я понял):
а) через локальную авторизацию на хосте:
<?php $dblocation = "localhost"; $dbname = "*****"; $dbuser = "*****"; $dbpasswd="*****"; $dbcnx = mysql_connect($dblocation, $dbuser, $dbpasswd); if (!$dbcnx) { echo "<p>К сожалению, не доступен сервер MySQL</p>"; exit(); } if (!mysql_select_db($dbname,$dbcnx) ) { echo "<p>К сожалению, не доступна база данных</p>"; exit(); } $ver = mysql_query("SELECT VERSION()"); if(!$ver) { echo "<p>Ошибка в запросе MySQL</p>"; exit(); } echo mysql_result($ver, 0); ?>
б) через серверную авторизацию (?):
<?php $server="*****"; //Имеется ввиду возможность связи с внешней по отношению к localhost базе MySQL на другом сервере? //Почему здесь не проходит локальный IP 127.0.0.1, если он есть в my.cnf "[mysqld] bind-address = 127.0.0.1"? $user = "*****"; $pass = "*****"; //Далее один трёх вариантов, просьба подсказать разницу. $dbases="*****"; //$base = "*****"; //$db = "*****"; $connect = mysql_connect($server,$user,$pass) if (!$connect) { echo "<p>К сожалению, не доступен сервер MySQL</p>"; exit(); } if (!mysql_select_db($dbases,$connect)) { echo "<p>К сожалению, не доступна база данных</p>"; exit(); } $ver = mysql_query("SELECT VERSION()"); if(!$ver) { echo "<p>Ошибка в запросе MySQL</p>"; exit(); } echo mysql_result($ver, 0); ?>
4. Даёт ли что-то полезное, кроме проверки подключения к MySQL, следующий скрипт?
<?php $dblocation = "*****"; $dbname = "*****"; $dbuser = "*****"; $dbpasswd="*****"; $dbcnx=mysql_connect($dblocation, $dbuser, $dbpasswd); mysql_select_db($db); ?>
У меня он просто выводит чистую страницу.
Был бы весьма признателен за разъяснения.
Кстати, какие минимальные права должны быть у пользователя "mysql", чтобы клиенты могли работать со своими личными данными через сайты?
Неактивен
Ух, сколько вопросов И ни один из них не по MySQL. Попробуйте задать их на http://webew.ru
1. Обычно это делается на уровне веб-сервера. Да, нужны отдельные каталоги для каждого сайта.
VirtualHost — правильная директива для изучения.
2. Можно, в каждом каталоге будет свой сценарий, который работает со своей базой.
3. а = б, ничем не отличаются.
4. Он очень полезно подключается к базе, потом можно это подключение использовать.
Права зависят от того, какие запросы выполняет сценарий. Для выборки данных может хватить
SELECT. Обычно дают все права, чтобы не разбираться (хотя, конечно, это не самый безопасный
способ).
Неактивен
Подскажите, плз, хотел утановить движок на сайт, все в начале хорошо, но привязать к mysql серверу не получилось. Пишет Access denied for user 'dimmel4'@'66.40.52.25' (using password: YES). В описание к движку написано как кот наплакал, но на 1 сайте видел что должен быть файл config, -"Зайдя в такой файл, мы прописываем соединение с базой данных. Как правило, данные, которые нужно прописать для соединения с базой, имеют следующие значения:
$config[host]='localhost';
$config[login]='root';
$config[pas]='';". я нашел один файл конфиг пшп, в нем
было вот что
<?php
// General settings
$config['general.engine'] = 'GoogleSpell';
//$config['general.engine'] = 'PSpell';
//$config['general.engine'] = 'PSpellShell';
//$config['general.remote_rpc_url'] = 'http://some.other.site/some/url/rpc.php';
// PSpell settings
$config['PSpell.mode'] = PSPELL_FAST;
$config['PSpell.spelling'] = "";
$config['PSpell.jargon'] = "";
$config['PSpell.encoding'] = "";
// PSpellShell settings
$config['PSpellShell.mode'] = PSPELL_FAST;
$config['PSpellShell.aspell'] = '/usr/bin/aspell';
$config['PSpellShell.tmp'] = '/tmp';
// Windows PSpellShell settings
//$config['PSpellShell.aspell'] = '"c:\Program Files\Aspell\bin\aspell.exe"';
//$config['PSpellShell.tmp'] = 'c:/temp';
?>
и он назходился аж в \upload\engine\editor\jscripts\tiny_mce\plugins\spellchecker
Неактивен
http://s59.radikal.ru/i166/0904/b9/8dd449033a41.jpg
http://s39.radikal.ru/i086/0904/12/0a533903c6e0.jpg
Но вот тут я заметил http://s46.radikal.ru/i113/0904/29/05664fba0109.jpg, что ай-пи на 2-й и 3-й картинке не совпадают, хотя вроде все прописал правильно... Я просто начинающий. помогите плз
Неактивен
И вот еще нашел <?PHP
define ("DBHOST", "mysql4.freehostia.com");
define ("DBNAME", "dimmel4_sql");
define ("DBUSER", "dimmel4");
define ("DBPASS", "2155047");
define ("PREFIX", "dle");
define ("COLLATE", "cp1251");
define ("USERPREFIX", "dle");
$db = new db;
?>... И то случайно, поисковик не нашел.... Получается все правильно прописано?
Неактивен
engine/data/dbconfig.php
Неактивен
Ух, сколько сообщений.
Судя по всему, пароль 2155047 не подходит для пользователя dimmel4. Найдите правильный пароль,
с которым будет пускать
Неактивен
Взял изменил 2155047 на 2155047 пишет -изменено саксесфулл, вхожу таже фигня, может быть еще что-то?
Неактивен
По-моему, достаточно бесполезное изменение, Вы не находите?
Пишите те же имя и пароль, которые используете в phpmyadmin.
Неактивен
Спасибо за ответы, написал хостеру в службу поддержки, оказалось, что просто имя пользователя и имя базы данных совпадают, а я вводил БД - dimmel4_sql, а имя пользователя dimmel4, с паролем было все нормально.
Неактивен