Я разработал приложение на VB6 и использую онлайновый сервер базы данных MySQL для хранения данных моего приложения.
Первый раз, когда я пытаюсь подключиться к серверу базы данных, все прошло успешно, но после закрытия приложения и повторного запуска я получаю:
Не удается подключиться к серверу MySQL (10060) "
Через некоторое время (примерно 30 минут) я снова могу успешно подключиться к базе данных.
- Я дал максимальные значения всем системным MySQL и глобальным переменным, таким как connection_timeout , wait_timeout и т. Д.
- Я предоставил все разрешения моему пользователю MySQL.
- Брандмауэр на моем компьютере выключен.
- Все соединения правильно закрываются при закрытии приложения.
Я спросил технических специалистов, которые предоставляют службу онлайн-базы данных MySQL, и они дали мне следующие три причины:
- Локальный компьютер, с которого вы пытаетесь подключиться, не входит в белый список на сервере.
- Максимальное количество соединений для пользователя было превышено.
- Сервер MySQL был недоступен в то время (хотя они сказали, что их сервер не был выключен).
Как я могу решить первые две причины или определить, что они являются причиной проблемы? Или может быть другая проблема, не указанная там?
mysql
connectivity
Ашок Гуджар
источник
источник
Ответы:
Вы должны убедиться, что есть:
1) создан пользователь с удаленным доступом, например user @ 'xxxx'
2) есть соединение от двух машин (они могут пинговать друг друга, например, или получать доступ друг к другу другим способом), порт открыт между двумя машинами
3)
my.ini/my.cnf
есть блокирующий параметр подключения, например:bind-address=a.a.a.a
илиskip-networking
4) служба запущена и работает, когда вы пытаетесь подключиться с другой машины
источник
Скорее всего, это проблема сетевой стороны, и поставщику услуг базы данных необходимо создать новое правило в брандмауэре (iptables). Тем не менее, нам просто нужно подтвердить несколько вещей от поставщика. Поскольку поведение не является устойчивым (иногда вы можете подключиться, а иногда нет). Так что это не проблема привилегий пользователя (GRANT ALL ON ...)
источник
Укажите вывод порта telnet (ip):
У меня была такая же проблема в прошлый раз, и iptables является виновником в то время.
Когда сервер был перезагружен, правило iptables превращается в значение по умолчанию, и оно не применяет фильтр для определенных портов.
Проверьте iptables
источник
Сначала проверьте, дали ли вы надлежащие привилегии пользователю на текущем хосте, через который вы пытаетесь подключиться к серверу MySQL.
select * from mysql.user where host="host_name"\G;
Я надеюсь, что это полезно для вас.
источник
Я потратил целый день, пытаясь понять это, и оказалось, что сеть Windows была настроена как общедоступная, а не частная, которая блокирует все входящие соединения. Надеюсь, это кому-нибудь поможет.
источник
некоторые хостинг-провайдеры по умолчанию блокируют удаленный доступ к своим серверам MySql по соображениям безопасности. Если вам необходимо разблокировать службу удаленного доступа, скажите им, что нужно разблокировать эту службу.
В противном случае, протестируйте ваше приложение локально, под именем localhost, и когда это будет работать нормально, измените имя хоста и так далее в параметрах базы данных в вашем приложении и загрузите на сервер веб-хостинга, это прекрасно работает !!!
Позаботьтесь, чтобы ваш дизайн базы данных совпадал с вашим локальным дизайном базы данных, это очень важно !!!
Я надеюсь, что это полезно для вас.
источник
Две вещи, которые нужно добавить для пользователей mariadb:
1) my.cnf тоже для нас => там я нашел
bind-address = 127.0.0.1
строку2) после изменения файла my.cnf необходимо перезапустить службу
Надеюсь это поможет
источник