cancel
Showing results for 
Search instead for 
Did you mean: 
Warehousing & Analytics
Engage in discussions on data warehousing, analytics, and BI solutions within the Databricks Community. Share insights, tips, and best practices for leveraging data for informed decision-making.
cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to construct the sql url as the password is having special characters.

User16753724663
Valued Contributor

while using the sqlalchemy, unable to connect with sql server from databricks:

user='user@host.mysql.database.azure.com'
password='P@test'
host="host.mysql.database.azure.com"
database = "db"
connect_args={'ssl':{'fake_flag_to_enable_tls': True}}
connect_string = 'mysql+pymysql://{}:{}@{}/{}'.format(user,password,host,database)
     
engine = create_engine(connect_string, connect_args=connect_args, echo=False)
map = pd.read_sql("SELECT * FROM rig_emissions.tag_lookup", engine)
map['key'] = map['rig'].astype(str)+map['tagpath']
 
mapDict = dict(zip(map.key,map.id))
 

It returns the below error:

(pymysql.err.OperationalError) (2003, 'Can't connect to MySQL server on 'P@test' ([Errno -2] Name or service not known)')

1 REPLY 1

User16753724663
Valued Contributor

We can use urllib.parse to handle special characters. Here is an example:

import urllib.parse
user='user@host.mysql.database.azure.com'
 
password=urllib.parse.quote_plus("P@test")
host="host.mysql.database.azure.com"
database = "db"
 
connect_args={'ssl':{'fake_flag_to_enable_tls': True}}
 
connect_string = 'mysql+pymysql://{}:{}@{}/{}'.format(user,password,host,database)
 
 
engine = create_engine(connect_string, connect_args=connect_args, echo=False)
 

Connect with Databricks Users in Your Area

Join a Regional User Group to connect with local Databricks users. Events will be happening in your city, and you won’t want to miss the chance to attend and share knowledge.

If there isn’t a group near you, start one and help create a community that brings people together.

Request a New Group