У меня вопрос по настройкам mysql удаленные подключения и mysql на ubuntu? теперь я хочу выяснить, почему я не могу подключиться.
Я убедился, что адрес привязки закомментирован. Я могу проверить связь с сервером внутри виртуальной машины, но я не могу проверить связь с ним внутри виртуальной машины, используя mysqladmin --protocol=tcp --host=self_ip ping
. Я также проследил и проверил, открыты ли мои порты и выглядят ли они так. Я настраиваю samba на этой виртуальной машине и могу получить к ней доступ без проблем. Похоже, что в ubuntu нет брандмауэра (я уже догадывался об этом раньше), поэтому я озадачен, почему сервер не разрешает мое соединение.
По-видимому, файл конфигурации работает на стороне другого человека http://www.pastie.org/742545
Я использую Ubuntu 6.06 LTS только из соображений «поддержки». Надеюсь, это будет «легко»?
Я предполагаю, что это последний шаг из связанного вопроса:
Если логины работают на машине, но удаленным машинам отказано в разрешении, помните, что MySQL выполняет управление доступом, используя имя пользователя, пароль и имя хоста (с разрешенными подстановочными знаками). Возможно, вам придется скорректировать таблицы грантов.
Попробуйте войти в MySQL как root на сервере MySQL и запустить:
# grant all on [database name].* to '[user name]'@'[remote client hostname or IP address]' identified by '[password]'
Возможно, вы захотите уменьшить разрешение «все» до чего-то более ограничительного, в зависимости от ваших требований к доступу.
Сначала установите локально: работает ли mysql вообще (ps aux | grep mysql)?
Слушает ли mysql какие-либо порты (netstat -ln | grep mysql)?
Вы можете к нему подключиться?
(Если вы не можете выполнить процедуру сброса пароля root Вот (остановите mysql, начните с командной строки с помощью skip-grant-tables. Также хорошая ссылка для Не удается подключиться к [локальному] серверу MySQL прямо из справочника.).
Если он работает локально, проблема связана с виртуальной машиной.
Какая это виртуальная машина? Какую сеть вы используете (мостовую или NAT)?
Хм. Когда вы используете --host = self_ip. Вы имеете в виду --host = 127.0.0.1 или --host = 192.168.NNN.NNN или буквально --host = 'self_ip'?
Поскольку буквально набранный --host = self_ip может означать вызов хоста в сети с именем "self_ip"
Неужели это так?