OperationalError: (1045, "Access denied for user 'root;malher'@'localhost' (using password: NO)")

161 views
Skip to first unread message

Jose Galvan

unread,
Jun 5, 2015, 12:26:00 AM6/5/15
to web...@googlegroups.com

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", 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.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('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('google:datastore+ndb')
## store sessions and tickets there
session.connect(request, 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.generic_patterns = ['*'] if request.is_local else []
## choose a style for forms
response.formstyle = myconf.take('forms.formstyle') # or 'bootstrap3_stacked' or 'bootstrap2' or other
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.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)

Niphlod

unread,
Jun 5, 2015, 4:22:42 PM6/5/15
to web...@googlegroups.com
uhm. note that the uri is mysql://username:password@hostname/databasename
it seems that you put a ; instead of a : between user and password.
Reply all
Reply to author
Forward
0 new messages