Доступ к базе данных(серверной) с помощью Connection Strings

Всем привет есть простенькая программа с подключением к БД

         `MicronConfig config = new MicronConfig()
        {
            DatabaseName = "microninventory",
            Host = "localhost",
            User = "root",
            Password = "",
            Port = "3306",
        };`

И в паре с ней xampp + phpmyadmin с залитой туда БД. Дошел до точки развития когда пора эту бд заливать на сервер, начал монотонно гуглить, в основном нашел что простые хостинги поступают так:

Может ли провайдер отвергать запросы которые идут на прямую? Если речь идёт о хостинг-провайдере, то может. Зачастую у хостинг-провайдеров закрыт прямой доступ "снаружи" к MySQL

Меня это не остановило, выкопал документацию где это вполне возможно НО

...это адрес сервера баз данных. Если имя сервера указано как ‘localhost’, обратитесь к хостинг-провайдеру, чтобы узнать свой адрес сервера баз данных.

Вот уже часов шесть тыкаюсь по хостингам, везде одно и тоже... localhost, ни малейшего намека на полноценный адрес бд... написал заявки в службу поддержки... режим хатико on

Еще знаю что можно бэкенд написать на сервере (REST к примеру) но это не в моем случае, у меня он вшит в саму програму, собственно в этом вся ее суть...

Так же находил что то о выделенных серверах... попылася копать эту нишу но мне стало страшно... (*в теории если обьясните как на VPS установить MySQL, получить конфиг и дать доступ к удаленному подключению... буду премного благодарен за пинок в эту сторону, но согласитесь орендовать VPS ради одной БД...)

Еще пару вопросов в копилку:
-как правильно гуглить что бы найти сервера с уже нужными конфигами? (как вот открытый адрес БД, удаленное подключение) мне высвечивает 1) как подлючить бд локалхостом))) 2)тех поддержка бд, удаленный доступ к обслуживанию...
-поделитесь мануалами по VPS (я больше вариантов не вижу, буду арендовать супер компьютер для 1мб БД)
-поделитесь серверами (желательно с trial) где возможно разрешен доступ...


Ответы (1 шт):

Автор решения: Alex Krass

Хостинг провайдеры часто не предоставляют доступ к существующей базе данных из соображений безопасности и просто перестраховываются. Поэтому лучше рассмотреть вариант с дешевым VPS сервером.

У хостеров часто есть услуга предустановленного ПО, поэтому следует выбрать VPS с предустановленным LAMP сервером (Apache + MySQL + PHP). Тогда MySQL уже будет установлен на сервере. В противном случае MySQL надо будет установить в ручную в зависимости от дистрибутива Linux через команду sudo apt-get install mysql-server или yum install mysql-server.

Дальше в конфигурационном файле /etc/mysql/my.cnf (/etc/my.cnf) надо заменить адрес возможных подключений с локального 127.0.0.1 на любой 0.0.0.0.

bind-address=0.0.0.0

И перезапустить сам сервер из терминала:

$> service mysql restart

После этого всё должно заработать.


Возможно придется еще настроить firewall:

Ubuntu: $> ufw allow from any to any port 3306
CentOS 6.x: $> iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT; service iptables save
CentOS 7: $> firewall-cmd --zone=public --add-port=3306/tcp --permanent; firewall-cmd --reload

P.S. Информация взята отсюда how can connect mysql database in my vps?

→ Ссылка