I’m trying to deploy my app into streamlit cloud but always appears this error:
pyodbc.OperationalError: (‘HYT00’, ‘[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)’)
Could someone help me with this?
10.115.12.98 is not a public IP address. Your SQL Server instance should be on a host that’s publicly reachable.
@snehankekre Is there any way to access the SQL Server if it’s not public? Can you give access only to Streamlit perhaps?
To connect to the remote DB from Streamlit Cloud, the remote DB must be publicly reachable. If you want to allow only connections from Streamlit Cloud, you’ll have to configure the network hosting the remote SQL Server to allowlist Streamlit Cloud’s six stable outbound IP addresses. Those can be found here:
If your DB is hosted locally on your personal computer, you’ll need to configure your network to open a port to listen to outside traffic. However, in nearly 100% of cases, you don’t want to expose your personal computer to the larger internet. Most internet service providers (at least in the U.S.) don’t even provide an easy way to open a port to allow outside traffic to access a local database.
The proper solution is to host the database on public infrastructure of some sort, whether that’s Heroku, Amazon Web Services, DigitalOcean, etc. And if needed, allowlist Streamlit Cloud’s outbound IP addresses.