Доступ к базе данных(серверной) с помощью 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 шт):
Хостинг провайдеры часто не предоставляют доступ к существующей базе данных из соображений безопасности и просто перестраховываются. Поэтому лучше рассмотреть вариант с дешевым 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?