mysql.connector.errors.ProgrammingError: 1698 (28000): доступ запрещен для пользователя 'root' @ 'localhost' - PullRequest
0 голосов
/ 19 марта 2019

Я новичок в Raspberry Pi и MySQL.

Я создал код, базу данных в phpmyadmin, которая запускалась сервером wamp на моем ПК.Между тем, я хочу запустить этот код в Raspberry Pi 3. Кроме того, когда я запускаю код в Raspberry Pi 3, я хочу, чтобы данные можно было сохранить в phpmyadmin, таким образом, когда я запускаю localhost на своем ПК, данные, которые яEnter из Raspberry Pi тоже можно сохранить на ПК.Но, когда я запустил его, он показывает сообщение об ошибке, подобное этому:

mysql.connector.errors.ProgrammingError: 1698 (28000): доступ запрещен для пользователя 'root' @ 'localhost'

Вот мой БД:

#connect to db
db = mysql.connector.connect(host = 'localhost', user = 'root', password = 
'', database = 'user')

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

У меня Raspberry Pi и я сделал следующие шаги:

Обновление операционной системы:

обновление sudo apt-get && обновление sudo apt-get

Установить сервер MySQL:

sudo apt-get install mysql-server

Установить клиент MySQL:

sudo apt-get install mysql-client

Проверка состояния mySQL:

статус сервиса sudo mysql

Установить MySQL Python Connector:

sudo apt-get -y установить python3-mysql.connector

Дайте mySQL пароль:

sudo mysql -uroot

использовать mysql;

обновить пользовательский набор authentic_string = PASSWORD ('mynewpassword'), где User = 'root';

Примечание. В приведенной выше команде оставьте пользователя root, просто установите пароль.

Выход из MySQL:

\ д

Остановить службы MySQL:

sudo /etc/init.d/mysql stop

Запуск служб MySQL:

sudo /etc/init.d/mysql start

Проверьте новый пароль, войдя в базу данных:

sudo mysql -u root -p

ПОКАЗАТЬ БАЗЫ ДАННЫХ;

CREATE DATABASE YOUR_DATABASE_NAME_HERE;

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'YOUR_NEW_USERNAME' @ 'localhost', ИДЕНТИФИЦИРОВАННОГО 'YOUR_NEW_PASSWORD';

Примечание: Python нужен новый пользователь, чтобы разрешить связь с mySQL! Понятия не имею почему, но это работает.

В Python:

import mysql.connector  

# The following code tests Pythons connection to mySQL
mydb = mysql.connector.connect(
  host="localhost",
  user="YOUR_NEW_USER",
  password="YOUR_NEW_PASSWORD"
)

print(mydb)

Мне потребовалось несколько дней, чтобы собрать это с дюжины разных сайтов. Надеюсь, мои записи ничего не пропустили. Создание нового пользователя в конце, кажется, ключевой вопрос. У меня не установка Windows, но установка должна быть похожей.

0 голосов
/ 19 марта 2019

Используйте приведенный ниже запрос и выполните его в своей базе данных.

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
...