I Strill trying to connect, idk if my uri string is wrong, or if i did a mistake. Anyway, my string is like this-> mysql://user@db:password@server:3306/db And my DAL is like this -> DAL(myconf.get('db.uri'), pool_size=myconf.get('db.pool_size'), migrate_enabled=myconf.get('db.migrate'), check_reserved=['all'], decode_credentials=True)
Em domingo, 11 de junho de 2017 04:38:40 UTC-3, Massimo Di Pierro escreveu: > > I was having the same problem. > > DAL(..., decode_credentials=True) > > this will allow you to have urlencoded (@ -> %40) username and password. > > Massimo > > > > On Thursday, 8 June 2017 16:06:32 UTC-5, Raul Romay Barrero wrote: >> >> Hi all, >> >> Azure has just launched "Azure database for MySQL" a managed Mysql >> service. It's in PREVIEW state and I was giving it a try with our web2py >> based application. >> >> Any user name you configure to connect to the database instance gets >> appended an "@database_name", so in our case it's something like >> 'user@mnp-db'. This is creating a problem when connecting to database: >> >> 2017-06-08 13:49:45,437 - cmp - 114405 - models.db.py - 44 - <module> - >> ERROR - Exception generating DAL. Failure to connect, tried 5 times: >> Traceback (most recent call last): >> File "/home/www-data/web2py/gluon/dal.py", line 7563, in __init__ >> self._adapter = ADAPTERS[self._dbname](**kwargs) >> File "/home/www-data/web2py/gluon/dal.py", line 2573, in __init__ >> if do_connect: self.reconnect() >> File "/home/www-data/web2py/gluon/dal.py", line 606, in reconnect >> self.connection = f() >> File "/home/www-data/web2py/gluon/dal.py", line 2571, in connector >> return self.driver.connect(**driver_args) >> File "/home/www-data/web2py/gluon/contrib/pymysql/__init__.py", line >> 93, in Connect >> return Connection(*args, **kwargs) >> File "/home/www-data/web2py/gluon/contrib/pymysql/connections.py", line >> 575, in __init__ >> self._connect() >> File "/home/www-data/web2py/gluon/contrib/pymysql/connections.py", line >> 741, in _connect >> self._request_authentication() >> File "/home/www-data/web2py/gluon/contrib/pymysql/connections.py", line >> 796, in _request_authentication >> self._send_authentication() >> File "/home/www-data/web2py/gluon/contrib/pymysql/connections.py", line >> 845, in _send_authentication >> auth_packet.check_error() >> File "/home/www-data/web2py/gluon/contrib/pymysql/connections.py", line >> 341, in check_error >> raise_mysql_exception(self.__data) >> File "/home/www-data/web2py/gluon/contrib/pymysql/err.py", line 142, in >> raise_mysql_exception >> _check_mysql_exception(errinfo) >> File "/home/www-data/web2py/gluon/contrib/pymysql/err.py", line 138, in >> _check_mysql_exception >> raise InternalError, (errno, errorvalue) >> InternalError: (2001, u'The server name you tried cannot be found. Please >> use the correct name and retry. Please check your server name mnp.\x00') >> >> The error is missleading as it's not related to the server name but to >> the fact the user name includes an "@". Encoding it as %40 in the URI is >> not solving the issue. >> >> I was debugging inside pymysql when I relized I could change to >> MySQL-python. It worked fine. >> >> So hopefully this will save some of you some time. >> >> Another thing to consider is that this service is in PREVIEW state but >> from my point of view is more an ALPHA state: connections from virtual >> machines in same resource group that the database instance are reaching the >> database through the public IP address, via internet. It's not only a >> latency issue, nor a bandwith concern, also a privacy issue... >> >> Best regards, >> Raúl. >> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.