Подскажите, что значит хост в Mysql? Если я написал скрипт на пхп и запустил его - то apache его передает интерпретатору php.exe, а тот обращается к MySql и записывает туда в таблицу что-то. А что значит хост? Apache, mysql и php находятся на одном компьютере. А если php.exe находится на другом компьютере, то тогда он уже соединение должен с тем компьютером делать, где mysql. А соединение с базой данных и соединение с сервером через интернет - это разные соединения. Непонятно что значит соединение с базой данных - кто соединяется и как. И что значит здесь хост - что кроме localhost можно указать при соединении, если mysql находится на том же компьютере?
Спасибо за ответ
Спустя 56 секунд (2.06.2010 - 15:29) DedMorozzz написал(а):
могу предположить, что "localhost"
Спустя 7 часов, 34 минуты, 2 секунды (2.06.2010 - 23:03) program90 написал(а):
я в денвере создал несколько виртуальных хостов. По умолчанию - localhost. Второй - SomeHost. И третий Dup.
Когда я ввожу в командной строке:
>mysql -u root -h localhost -p
То после ввода пароля подключается, как rott@localhost.
Когда ввожу
>mysql -u root -h SomeHost -p
то подключается тоже как root@localhost
Когда ввожу
>mysql -u root -h Dup -p
то происходит ошибка:
ERROR 2005 (HY000): Unknown MySQL server host 'Dup' (11001)
Почему третий хост не подключается? И почему с хоста SomeHost клиент подключается к базе данных как root@localhost? (Т.е. как пользователь root из хоста localhost)
Когда я ввожу в командной строке:
>mysql -u root -h localhost -p
То после ввода пароля подключается, как rott@localhost.
Когда ввожу
>mysql -u root -h SomeHost -p
то подключается тоже как root@localhost
Когда ввожу
>mysql -u root -h Dup -p
то происходит ошибка:
ERROR 2005 (HY000): Unknown MySQL server host 'Dup' (11001)
Почему третий хост не подключается? И почему с хоста SomeHost клиент подключается к базе данных как root@localhost? (Т.е. как пользователь root из хоста localhost)
Спустя 23 минуты, 47 секунд (2.06.2010 - 23:27) ZSH написал(а):
localhost это значит что на одном компе mysql с апачем и php
виртуальных хостов несколько, а mysql один и доступ к нему будет через localhost, прсто имя БД и имя пользователя БД будут разными.
Если апач с php иmysql на разных хостах(серверах) тогда вместо localhost прописывается реальный адрес к mysql
виртуальных хостов несколько, а mysql один и доступ к нему будет через localhost, прсто имя БД и имя пользователя БД будут разными.
Если апач с php иmysql на разных хостах(серверах) тогда вместо localhost прописывается реальный адрес к mysql
Спустя 1 час, 13 минут (3.06.2010 - 00:40) NewBePhp написал(а):
program90
если сервер и клиент только на твоей машине (ты админ и обрашение к скрипту идет локально то адрес хоста такой 127.0.0.1 или localhost)
если клиент обращается к серву *на стороне* то хост уже указывается сервера (но не локальный а тот что тебе дадут при регистрации)
если сервер и клиент только на твоей машине (ты админ и обрашение к скрипту идет локально то адрес хоста такой 127.0.0.1 или localhost)
если клиент обращается к серву *на стороне* то хост уже указывается сервера (но не локальный а тот что тебе дадут при регистрации)
Спустя 9 часов, 24 минуты, 55 секунд (3.06.2010 - 10:05) program90 написал(а):
А чем отличается сервер mysql от сервера apache? Как происходит взаимодействие между пользователем и Базой Данных? Например я загружаю браузер, нажимаю кнопку - Показать сведения об автомобиле. И вот как дальше? Браузер соединяется с apache, который работает на другом компьютере. Apache запускает php-интерпретатор. Интерпретатор соединяется с сервером базы данных, который находится на том же компьютере, где и apache, переведя запрос на язык sql. И дальше сервер, обработав, отправляет назад. Правильно ли я написал?
Тогда не понятно что значит сервер базы данных - почему интерпретатору нужно к нему обращаться через сетевой интерфейс localhost? Это настоящий сервер, такой же как apache? Или это просто такое название субд? Если это настоящий сервер, то зачем два сервера на одном компе - apache и сервер mysql? Зачем тогда нужен apache? Почему нельзя сразу к серверу mysql обращаться, и пусть он php-интерпретатор запускает.
Тогда не понятно что значит сервер базы данных - почему интерпретатору нужно к нему обращаться через сетевой интерфейс localhost? Это настоящий сервер, такой же как apache? Или это просто такое название субд? Если это настоящий сервер, то зачем два сервера на одном компе - apache и сервер mysql? Зачем тогда нужен apache? Почему нельзя сразу к серверу mysql обращаться, и пусть он php-интерпретатор запускает.
Спустя 46 минут, 46 секунд (3.06.2010 - 10:52) Basili4 написал(а):
program90
НЕ всегда web сервер и сервер базданых работают на одном компьютере я скажу даже больше есть случае когда сервер базы данных работает на несколько компьютерах это называется кластер. два сервера используются толкуко потому что они выполняют различные фукции как автомобиль и пылесос Вы же приходя в магазин не спрашиваете почему на вашем пылесосе нельзя ездить наработе в нем же есть колеса. Web сервер обрабатывает запросы Http и выполняет их если в запросе указано обработать файл интрепретатором пыхи он передает для обработки файл интепретатору если в этом файле есть требование соединится с сервером баз данных то интерпретатор пытается это сделать. Апач не может работать с базами напрямую он и знать не знает что таке есть. он видит толко запрос сервер mysql не знает откуда пришол и по какому протоколу пришел запрос . У меня на локальной машине запускаются и работают php скрипты они работают без web сервера напрямую с mysql. но запустить их можно только с машины некак не удалено темболее в адресном пространстве моей машины.
НЕ всегда web сервер и сервер базданых работают на одном компьютере я скажу даже больше есть случае когда сервер базы данных работает на несколько компьютерах это называется кластер. два сервера используются толкуко потому что они выполняют различные фукции как автомобиль и пылесос Вы же приходя в магазин не спрашиваете почему на вашем пылесосе нельзя ездить наработе в нем же есть колеса. Web сервер обрабатывает запросы Http и выполняет их если в запросе указано обработать файл интрепретатором пыхи он передает для обработки файл интепретатору если в этом файле есть требование соединится с сервером баз данных то интерпретатор пытается это сделать. Апач не может работать с базами напрямую он и знать не знает что таке есть. он видит толко запрос сервер mysql не знает откуда пришол и по какому протоколу пришел запрос . У меня на локальной машине запускаются и работают php скрипты они работают без web сервера напрямую с mysql. но запустить их можно только с машины некак не удалено темболее в адресном пространстве моей машины.
Спустя 55 минут, 12 секунд (3.06.2010 - 11:47) program90 написал(а):
Хорошо,
а что тогда значит сервер базы данных? Т.е. можно прямо подключаться скажем на адрес 154.594.1234560.600 к порту 6583950803468 и там его будет слушать сервер mysql? И иначе с сервером mysql соединиться нельзя? только через сетевой интерфейс даже если php и mysql находятся на одном компе?
(два вопроса!!)
а что тогда значит сервер базы данных? Т.е. можно прямо подключаться скажем на адрес 154.594.1234560.600 к порту 6583950803468 и там его будет слушать сервер mysql? И иначе с сервером mysql соединиться нельзя? только через сетевой интерфейс даже если php и mysql находятся на одном компе?
(два вопроса!!)
Спустя 2 минуты, 54 секунды (3.06.2010 - 11:50) waldicom написал(а):
Цитата (program90 @ 3.06.2010 - 10:47) |
только через сетевой интерфейс даже если php и mysql находятся на одном компе? (два вопроса!!) |
Если php и mysql находятся на одном компе, можно соединяться через сокет или через tcp/ip
Спустя 3 минуты, 36 секунд (3.06.2010 - 11:53) Basili4 написал(а):
и ip с портами указывай правельно
Цитата |
154.594.1234560.600 к порту 6583950803468 |
таких адресов нет и не может быть.
Спустя 2 минуты, 6 секунд (3.06.2010 - 11:55) program90 написал(а):
Так нет - вопрос то главный у меня пока этот -
"Т.е. можно прямо подключаться скажем на ip адрес к некоторому порту и там его будет слушать сервер mysql? "
"Т.е. можно прямо подключаться скажем на ip адрес к некоторому порту и там его будет слушать сервер mysql? "
Спустя 1 минута, 12 секунд (3.06.2010 - 11:57) waldicom написал(а):
Цитата (program90 @ 3.06.2010 - 10:55) |
"Т.е. можно прямо подключаться скажем на ip адрес к некоторому порту и там его будет слушать сервер mysql? " |
Если сервер настроен слушать на этом порту, то да
Спустя 2 часа, 56 минут, 21 секунда (3.06.2010 - 14:53) program90 написал(а):
Т.е. получается что mysql сервер включает в себя как бы код подобный коду apache? т.е. он делает то же самое - получает запрос передает его комуто(СУБД) и возвращает ответ?
Спустя 15 минут, 15 секунд (3.06.2010 - 15:08) Basili4 написал(а):
Цитата (program90 @ 3.06.2010 - 11:53) |
включает в себя как бы код подобный коду apache? |
Это называется вызовом API функций ОС. В сомой оси есть функции короые сделаны для того чтобы приложение моголо слушать порт писать в порт соединятся с другими компами.
Спустя 30 минут, 40 секунд (3.06.2010 - 15:39) waldicom написал(а):
Цитата (program90 @ 3.06.2010 - 13:53) |
Т.е. получается что mysql сервер включает в себя как бы код подобный коду apache? т.е. он делает то же самое - получает запрос передает его комуто(СУБД) и возвращает ответ? |
Серверная часть, отвечающая за прием сообщений на определенном порту - да, как у апача (они вообще все одинаковые). А вот что с данными происходит после того, как они были приняты на этом порту - это конечно у каждого сервера свое. Апач ищет файлы и отдает пользователю, мускул берет запрос и выолняет его внутри себя и также отдает пользователю.