返回我的错误是“用户'root访问被拒绝'@'localhost'(使用密码:YES)`。即使我使用`mike`

问题描述 投票:1回答:1

我希望a chatbot在MySQL数据库中记录数据。但是,我没有太多使用SQL管理SQL数据库的经验。我在文件ActionBookRoom中有一个action.py类,它调用与SQL的连接,并希望记录我发送给它的信息:name_roomdayhour_startduration

我知道我必须通过以下方式建立与数据库的连接:

cnx = connector.connect(host='I_really_don_t_know_what_to_use_here', password='my_pass_that_works_on_mysqlcmd', user="root", database="the_database")

我已经有一些问题需要建立连接,因此,我有更多的问题要知道如何存储数据。

class ActionBookRoom(Action):
    def name(self):
        return 'action_room'

    def run(self, dispatcher, tracker, domain):
        print("inside run")
        name_room = tracker.get_slot('name_room')
        day = tracker.get_slot('day')
        hour_start = tracker.get_slot('hour_start')
        duration = tracker.get_slot('duration')

        booking_answer = make_a_booking(name_room, day, hour_start, duration)
        print("passed booking")
        if booking_answer:
            booking_answer = 'The reservation has been made'
        else:
            booking_answer = 'The room is taken at this hour'

        response = """You want to book the {} room on {} at {} for {}. Is it correct ?""".format(name_room, day, hour_start, duration)

        name_room = str(name_room)
        day = str(day)
        hour_start = str(hour_start)
        duration = str(duration)
        print("before connexion")
        #SQL queries#
        cnx = connector.connect(host='I_don_t_know_what_to_use_here', password='my_mysql_cmd_password', user="root", database="the_database")
        print("after connexion")

        dispatch = dispatcher.utter_message(response)
        dispatch = dispatcher.utter_message(str(booking_answer))

        return dispatch

返回给我的错误是Access denied for user 'root'@'localhost' (using password: YES)。即使我使用mike

inside run
[2019-02-22 16:52:00,822] ERROR in app: Exception on /webhook [POST]
Traceback (most recent call last):
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\connection_cext.py", line 179, in _open_connection
    self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Access denied for user 'root'@'localhost' (using password: YES)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask_cors\decorator.py", line 128, in wrapped_function
    resp = make_response(f(*args, **kwargs))
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\rasa_core_sdk\endpoint.py", line 86, in webhook
    response = executor.run(action_call)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\rasa_core_sdk\executor.py", line 177, in run
    events = action(dispatcher, tracker, domain)
  File "C:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\actions.py", line 42, in run
    booking_answer = make_a_booking(name_room, day, hour_start, duration)
  File "C:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\booking.py", line 61, in make_a_booking
    cnx = mysql.connector.connect(password='jeb41jeb', user="root", database="alex")
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\__init__.py", line 172, in connect
    return CMySQLConnection(*args, **kwargs)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\connection_cext.py", line 78, in __init__
    self.connect(**kwargs)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\abstracts.py", line 735, in connect
    self._open_connection()
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\connection_cext.py", line 182, in _open_connection
    sqlstate=exc.sqlstate)
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
2019-02-22 16:52:00 ERROR    flask.app  - Exception on /webhook [POST]
Traceback (most recent call last):
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\connection_cext.py", line 179, in _open_connection
    self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Access denied for user 'root'@'localhost' (using password: YES)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\flask_cors\decorator.py", line 128, in wrapped_function
    resp = make_response(f(*args, **kwargs))
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\rasa_core_sdk\endpoint.py", line 86, in webhook
    response = executor.run(action_call)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\rasa_core_sdk\executor.py", line 177, in run
    events = action(dispatcher, tracker, domain)
  File "C:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\actions.py", line 42, in run
    booking_answer = make_a_booking(name_room, day, hour_start, duration)
  File "C:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\booking.py", line 61, in make_a_booking
    cnx = mysql.connector.connect(password='jeb41jeb', user="root", database="alex")
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\__init__.py", line 172, in connect
    return CMySQLConnection(*args, **kwargs)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\connection_cext.py", line 78, in __init__
    self.connect(**kwargs)
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\abstracts.py", line 735, in connect
    self._open_connection()
  File "c:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack\staenv\lib\site-packages\mysql\connector\connection_cext.py", line 182, in _open_connection
    sqlstate=exc.sqlstate)
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我使用MySQLWorbench但我仍然是新手。我可以使用my_password访问MySQL 8.0 CLI,获取用户:

mysql> SELECT User FROM mysql.user;
+------------------+
| User             |
+------------------+
| mike             |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
5 rows in set (0.00 sec)

即使我提供了有效的密码或Access denied for user 'root' @ 'localhost' (using password: YES),我也有mike

我应该重新安装MySQL吗?

Update :

我重新安装了MySQL并使用CLI尝试了它,它可以工作:

(staenv) C:\Users\antoi\Documents\Programming\Nathalie\18_2_2019\starter-pack-rasa-stack>python
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 13:35:33) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>> db = mysql.connector.connect(
...     host="localhost",user="root",password="MySQL.2019",database="alex")
>>>
>>> cursor = db.cursor()
>>> cursor.execute("SELECT * FROM reservations")
>>> myresult = cursor.fetchall()
>>> for x in myresult:
...   print(x)
...
(1, 'red', datetime.datetime(2018, 8, 8, 12, 0), None)
(2, 'red', datetime.datetime(2018, 8, 8, 12, 0), None)
>>>

但是,当我尝试从文件actions.py执行此操作时,我仍然有错误

python mysql python-3.x
1个回答
0
投票

您可以使用以下连接器

cnx = connector.connect(host='I_really_don_t_know_what_to_use_here', password='your_password', user="mike", database="the_database")

在用户参数中添加你的username

© www.soinside.com 2019 - 2024. All rights reserved.