cancel
Showing results for 
Search instead for 
Did you mean: 
Warehousing & Analytics
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)
 

Welcome to Databricks Community: Lets learn, network and celebrate together

Join our fast-growing data practitioner and expert community of 80K+ members, ready to discover, help and collaborate together while making meaningful connections. 

Click here to register and join today! 

Engage in exciting technical discussions, join a group with your peers and meet our Featured Members.