Hi all.. Iam starting to learn web2py. I have been playing with DAL and was able to import a legacy MySQL DB tables. I did it using the python's prompt and it was possible to do some queries to the tables of the legacy DB...the results of these queries were presented as python dictionary format, it was great !.
To continue playing with my legacy DB I decide to create a new app following the Web2py Browser interface so the first thing I did was to update the line refered to the DAL conexion in models db.py. then when I run the app..appears the following error ticket.. any help will be appreciated.. Error ticket for "Pedidos" Ticket ID 127.0.0.1.2015-06-03.17-26-28.b24801c4-a854-4de5-9d20-c360002ac66a <type 'exceptions.RuntimeError'> Failure to connect, tried 5 times: Traceback (most recent call last): File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\base.py", line 437, in __init__ self._adapter = ADAPTERS[self._dbname](**kwargs) File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\adapters\base.py", line 57, in __call__ obj = super(AdapterMeta, cls).__call__(*args, **kwargs) File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\adapters\mysql.py", line 132, in __init__ if do_connect: self.reconnect() File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\connection.py", line 105, in reconnect self.connection = f() File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\adapters\mysql.py", line 130, in connector return self.driver.connect(**driver_args) File "d:\python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect return Connection(*args, **kwargs) File "d:\python27\lib\site-packages\MySQLdb\connections.py", line 187, in __init__ super(Connection, self).__init__(*args, **kwargs2) OperationalError: *(1045, "Access denied for user 'root;malher'@'localhost' (using password: NO)") * Versión web2py™ Version 2.11.2-stable+timestamp.2015.05.30.16.33.24 Rastreo 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Traceback (most recent call last): File "D:\Python27\Lib\site-packages\web2py\gluon\restricted.py", line 227, in restricted exec ccode in environment File "D:/Python27/Lib/site-packages/web2py/applications/Pedidos/models/db.py" <http://127.0.0.1:8000/admin/default/edit/Pedidos/models/db.py>, line 21, in <module> db = DAL('mysql://root;malher@localhost/lafe') File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\base.py", line 174, in __call__ obj = super(MetaDAL, cls).__call__(*args, **kwargs) File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\base.py", line 459, in __init__ raise RuntimeError("Failure to connect, tried %d times:\n%s" % (attempts, tb)) RuntimeError: Failure to connect, tried 5 times: Traceback (most recent call last): File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\base.py", line 437, in __init__ self._adapter = ADAPTERS[self._dbname](**kwargs) File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\adapters\base.py", line 57, in __call__ obj = super(AdapterMeta, cls).__call__(*args, **kwargs) File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\adapters\mysql.py", line 132, in __init__ if do_connect: self.reconnect() File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\connection.py", line 105, in reconnect self.connection = f() File "D:\Python27\Lib\site-packages\web2py\gluon\packages\dal\pydal\adapters\mysql.py", line 130, in connector return self.driver.connect(**driver_args) File "d:\python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect return Connection(*args, **kwargs) File "d:\python27\lib\site-packages\MySQLdb\connections.py", line 187, in __init__ super(Connection, self).__init__(*args, **kwargs2) OperationalError: (1045, "Access denied for user 'root;malher'@'localhost' (using password: NO)") In file: D:\Python27\Lib\site-packages\web2py\applications\Pedidos\models\db.py 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. # -*- coding: utf-8 -*- ######################################################################### ## This scaffolding model makes your app work on Google App Engine too ## File is released under public domain and you can use without limitations ######################################################################### ## if SSL/HTTPS is properly configured and you want all HTTP requests to ## be redirected to HTTPS, uncomment the line below: # request.requires_https() ## app configuration made easy. Look inside private/appconfig.ini from gluon.contrib.appconfig import AppConfig ## once in production, remove reload=True to gain full speed myconf = AppConfig(reload=True) if not request <http://127.0.0.1:8000/examples/global/vars/request>.env.web2py_runtime_gae: ## if NOT running on Google App Engine use SQLite or other DB ## db = DAL(myconf.take('db.uri'), pool_size=myconf.take('db.pool_size', cast=int), check_reserved=['all']) db = DAL <http://127.0.0.1:8000/examples/global/vars/DAL>('mysql://root;malher@localhost/lafe') <- this is the line I used and commented the above one. else: ## connect to Google BigTable (optional 'google:datastore://namespace') db = DAL <http://127.0.0.1:8000/examples/global/vars/DAL>('google:datastore+ndb') ## store sessions and tickets there session <http://127.0.0.1:8000/examples/global/vars/session>.connect(request <http://127.0.0.1:8000/examples/global/vars/request>, response <http://127.0.0.1:8000/examples/global/vars/response>, db=db) ## or store session in Memcache, Redis, etc. ## from gluon.contrib.memdb import MEMDB ## from google.appengine.api.memcache import Client ## session.connect(request, response, db = MEMDB(Client())) ## by default give a view/generic.extension to all actions from localhost ## none otherwise. a pattern can be 'controller/function.extension' response <http://127.0.0.1:8000/examples/global/vars/response>.generic_patterns = ['*'] if request <http://127.0.0.1:8000/examples/global/vars/request>.is_local else [] ## choose a style for forms response <http://127.0.0.1:8000/examples/global/vars/response>.formstyle = myconf.take('forms.formstyle') # or 'bootstrap3_stacked' or 'bootstrap2' or other response <http://127.0.0.1:8000/examples/global/vars/response>.form_label_separator = myconf.take('forms.separator') ## (optional) optimize handling of static files # response.optimize_css = 'concat,minify,inline' # response.optimize_js = 'concat,minify,inline' ## (optional) static assets folder versioning # response.static_version = '0.0.0' ######################################################################### ## Here is sample code if you need for ## - email capabilities ## - authentication (registration, login, logout, ... ) ## - authorization (role based authorization) ## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss) ## - old style crud actions ## (more options discussed in gluon/tools.py) ######################################################################### from gluon.tools import Auth, Service, PluginManager auth = Auth(db) service = Service() plugins = PluginManager() ## create all tables needed by auth if not custom tables ## auth.define_tables(username=True, signature=True) auth.define_tables(username=False, signature=False) ## configure email mail = auth.settings.mailer mail.settings.server = 'logging' if request <http://127.0.0.1:8000/examples/global/vars/request>.is_local else myconf.take('smtp.server') mail.settings.sender = myconf.take('smtp.sender') mail.settings.login = myconf.take('smtp.login') ## configure auth policy auth.settings.registration_requires_verification = False auth.settings.registration_requires_approval = False auth.settings.reset_password_requires_verification = True ######################################################################### ## Define your tables below (or better in another model file) for example ## ## >>> db.define_table('mytable',Field('myfield','string')) ## ## Fields can be 'string','text','password','integer','double','boolean' ## 'date','time','datetime','blob','upload', 'reference TABLENAME' ## There is an implicit 'id integer autoincrement' field ## Consult manual for more options, validators, etc. ## ## More API examples for controllers: ## ## >>> db.mytable.insert(myfield='value') ## >>> rows=db(db.mytable.myfield=='value').select(db.mytable.ALL) ## >>> for row in rows: print row.id, row.myfield ######################################################################### ## after defining tables, uncomment below to enable auditing # auth.enable_record_versioning(db) -- 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.