Hi everyone, Following with the above subject. I'm not completely sure I haven't lost my track already, so I might be forgetting some of the things I tested. But somehow now I'm facing a different error.
This is what I did. Starting from scratch: 1st I created a regular application in Web2py using SQLite. 2nd I changed the URI from 'sqlite://storage.sqlite' to 'mysql://root:web2py@localhost:3306/test4'. But this time I keep my databases folder as it is. (No file removing at all. All *.table files are there storage.sqlite is there and sql.txt is also there.) 3rd I launch the app and I get the following error. Traceback (most recent call last): File "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\restricted.py", line 219, in restricted exec(ccode, environment) File "C:/Users/Jon/Downloads/web2py_winAPPLIANCES/web2py/applications/mysqltest3/models/db.py", line 36, in <module> check_reserved=['all']) File "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\base.py", line 170, in __call__ obj = super(MetaDAL, cls).__call__(*args, **kwargs) File "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\base.py", line 475, in __init__ "Failure to connect, tried %d times:\n%s" % (attempts, tb) RuntimeError: Failure to connect, tried 5 times: Traceback (most recent call last): File "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\base.py", line 440, in __init__ self._dbname = REGEX_DBNAME.match(uri).group() AttributeError: 'NoneType' object has no attribute 'group' What does this mean? Thanks in advance. Regards, Jon. On Wed, Jan 30, 2019 at 5:06 PM Jon Subscripted <jonsubscripti...@gmail.com> wrote: > Hi everyone, > Is there a step by step guide on how to create a MySQL based Web2Py app? > > I've been doing fine with SQLite so far, but my db is getting bigger and I > need to move on. > > I tried to do it myself but I must be missing something. I already created > a db in MySQL and I'm trying to create an app that connects to it from > scratch but it does not work: > > First I tried to do it with the "Application Wizard" (I know it is > experimental) inserting the uri 'mysql://root:web2py@localhost/test3' in > the "Database Uri:" entry. Even though it did not complain at all, > eventually a storage.sqlite file was created in the 'databases' folder. > > So I stopped the server, removed the files from databases folder and > modified the uri in "appconfig.init" uri from "uri = > sqlite://storage.sqlite" to "uri = mysql://root:web2py@localhost/test3". > But then, when I start the server again I get the following error: > > <type 'exceptions.RuntimeError'> Failure to connect, tried 5 times: > Traceback (most recent call last): File > "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\base.py", > line 455, in __init__ self._adapter = adapter(**kwargs) File > "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\adapters\__init__.py", > line 40, in __call__ obj = super(AdapterMeta, cls).__call__(*args, > **kwargs) File > "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\adapters\base.py", > line 369, in __init__ super(SQLAdapter, self).__init__(*args, **kwargs) > File > "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\adapters\base.py", > line 53, in __init__ self.reconnect() File > "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\connection.py", > line 172, in reconnect self.connection = self.connector() File > "C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon\packages\dal\pydal\adapters\mysql.py", > line 52, in connector return self.driver.connect(**self.driver_args) File > "MySQLdb/__init__.py", line 81, in Connect File "MySQLdb/connections.py", > line 193, in __init__ OperationalError: (1251, 'Client does not support > authentication protocol requested by server; consider upgrading MySQL > client') > > In order to be sure that MySQL was running and the db was reachable I > checked from IDLE and it worked (see code below), even if I got a warning > and had to instal pymysql (using: pip install pymysql). I was able to check > with MySQL Workbench (on Windows10) that a table was successfully created > in the db. > > >>> from pydal import DAL, Field > >>> uri = 'mysql://root:web2py@localhost/test3' > >>> db = DAL(uri) > >>> ftable = db.define_table('files', > Field('fullname','string'), > Field('number','integer'), > Field('opendatetime','datetime')) > > Warning (from warnings module): > File "C:\Python27\lib\site-packages\pymysql\cursors.py", line 170 > result = self._query(query) > Warning: (3719, u"'utf8' is currently an alias for the character set > UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please > consider using UTF8MB4 in order to be unambiguous.") > > >>> ftable > <Table files (id, fullname, number, opendatetime)> > > Could someone help me understand what's going on or suggest some > documentation, please? > Thanks in advance, Jon. > > -- 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.