Here it is: db = DAL('google:sql://vocabilisproject:vocabilis/vocabilis') I pass the password and the user name via App Launcher parameters as suggested in the GAE SDK docs: --mysql_user=root --mysql_password=xxxxxx --mysql_host=localhost --mysql_port=3306
On Mon, Aug 6, 2012 at 7:59 AM, Massimo Di Pierro < massimo.dipie...@gmail.com> wrote: > Can you show your complete connection string (masking any password of > course)? > > > On Saturday, 4 August 2012 02:11:30 UTC-5, Alexei Vinidiktov wrote: >> >> >> >> On Sat, Aug 4, 2012 at 1:56 PM, Alexei Vinidiktov < >> alexei.vinidik...@gmail.com> wrote: >> >>> Hello, >>> >>> I'm need hep figuring out how to set up a local GAE development server >>> with MySQL. >>> >>> MySQL connection parameters are specified via App Launcher application >>> settings: --mysql_user=root --mysql_password=xxxxxx --mysql_host=localhost >>> --mysql_port=3306 >>> >>> When I launch my web2py app with GAE Launcher on my local Windows box I >>> get this erorr message: >>> >>> ############ >>> ERROR 2012-08-04 06:28:43,515 dal.py:5962] DEBUG: connect attempt 0, >>> connection error: >>> Traceback (most recent call last): >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\dal.py", >>> line 5955, in __init__ >>> self._adapter = ADAPTERS[self._dbname](*args) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\dal.py", >>> line 3310, in __init__ >>> self.folder = folder or '$HOME/'+thread.folder.split('** >>> /applications/',1)[1] >>> IndexError: list index out of range >>> ############# >>> >>> What does the following line do? >>> >>> self.folder = folder or '$HOME/'+thread.folder.split('** >>> /applications/',1)[1] >>> >>> If I comment out "or '$HOME/'+thread.folder.split('**/applications/',1)[1]" >>> in DAL.py and relaunch the dev server, the application appears to be able >>> to connect to MySQL but then I get a different error message: >>> >>> ######## >>> INFO 2012-08-04 06:42:35,142 rdbms_mysqldb.py:102] Connecting to >>> MySQL with kwargs {'passwd': 'xxxxxx', 'unix_socket': '', 'host': >>> 'localhost', 'port': 3306, 'user': 'root'} >>> ERROR 2012-08-04 06:42:35,153 warnings.py:29] >>> C:\Users\alexei\Dev\web2py\voc**abilis.net >>> <http://vocabilis.net>\gluon\dal.py:1386: >>> Warning: Can't create database 'vocabilis'; database exists >>> ret = self.cursor.execute(*a, **b) >>> >>> ERROR 2012-08-04 06:42:35,575 restricted.py:155] Traceback (most >>> recent call last): >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\main.py", >>> line 510, in wsgibase >>> session._try_store_in_db(**request, response) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\globals.py", >>> line 561, in _try_store_in_db >>> record_id = table.insert(**dd) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\dal.py", >>> line 6829, in insert >>> return self._db._adapter.insert(self,**self._listify(fields)) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\dal.py", >>> line 928, in insert >>> raise e >>> ProgrammingError: (1146, "Table 'vocabilis.web2py_session_**vocabilis' >>> doesn't exist") >>> ######### >>> >>> The vocabilis database does exist. It was created earlier when I >>> connected to MySQL from a non GAE environment. >>> >>> If I specify a different non-existent database in the connection string, >>> then after relaunching the application vith the GAE Launcher I get this >>> error message: >>> >>> ####### >>> INFO 2012-08-04 06:44:45,415 rdbms_mysqldb.py:102] Connecting to >>> MySQL with kwargs {'passwd': 'xxxxxx', 'unix_socket': '', 'host': >>> 'localhost', 'port': 3306, 'user': 'root'} >>> ERROR 2012-08-04 06:44:45,828 restricted.py:155] Traceback (most >>> recent call last): >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\main.py", >>> line 510, in wsgibase >>> session._try_store_in_db(**request, response) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\globals.py", >>> line 561, in _try_store_in_db >>> record_id = table.insert(**dd) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\dal.py", >>> line 6829, in insert >>> return self._db._adapter.insert(self,**self._listify(fields)) >>> File >>> "C:\Users\alexei\Dev\web2py\vo**cabilis.net<http://vocabilis.net>\gluon\dal.py", >>> line 928, in insert >>> raise e >>> ProgrammingError: (1146, "Table 'vocabilis3.web2py_session_**vocabilis' >>> doesn't exist") >>> ####### >>> >>> So the application appears to be unable to create the session table. >>> >>> I'm running Windows, Python 2.7, web2py 1.99.7, MySQL 5.5 >>> >>> >>> >> I had a connection string with "migrate_enabled=False". I tried removing >> it, then I got this error message: >> >> ########################### >> ERROR 2012-08-04 07:07:40,513 restricted.py:155] Traceback (most >> recent call last): >> File "C:\Users\alexei\Dev\web2py\vo**cabilis.net <http://vocabilis.net> >> \gluon\restricted.**py", line 205, in restricted >> exec ccode in environment >> File "C:\Users\alexei\Dev\web2py\vo**cabilis.net <http://vocabilis.net> >> \applications\**vocabilis\models\db.py", line 23, in <module> >> session.connect(request, response, db = db) >> File "C:\Users\alexei\Dev\web2py\vo**cabilis.net >> <http://vocabilis.net>\gluon\globals.py", >> line 488, in connect >> migrate=table_migrate, >> File "C:\Users\alexei\Dev\web2py\vo**cabilis.net >> <http://vocabilis.net>\gluon\dal.py", >> line 6320, in define_table >> polymodel=polymodel) >> File "C:\Users\alexei\Dev\web2py\vo**cabilis.net >> <http://vocabilis.net>\gluon\dal.py", >> line 707, in create_table >> % (table._db._uri_hash, tablename)) >> File "C:\Python27\lib\ntpath.py", line 96, in join >> assert len(path) > 0 >> TypeError: object of type 'NoneType' has no len() >> ########################### >> >> >> -- >> Alexei Vinidiktov >> > -- > > > > -- Alexei Vinidiktov --