#python #mysql
#python #mysql
Вопрос:
Я сталкиваюсь с проблемой, когда я получаю данные GPS в raspberrypi. Из-за проблем с несовместимостью я должен использовать только python3. В принципе, я должен напечатать строку в столбец таблицы на сервере mysql raspberrypi. Я сижу над этой проблемой, но я не в состоянии это сделать. Я знаю, я прошу многого, но это настоящая проблема. Я попробовал эту ссылку:https://pymysql.readthedocs.io/en/latest/user/examples.html
Шаги установки, которые я выполнил, были:
sudo apt обновить sudo apt-получить установить python3-mysqldb sudo apt-получить установить mysql-сервер python3-mysqldb sudo mysql_secure_installation sudo mysqladmin -u root -p создать злоумышленника // злоумышленник — это имя базы данных sudo mysql intruder -u root -p
mysql> СОЗДАТЬ ТАБЛИЦУ gps(GPSDATA VARCHAR(200)НЕ NULL);
Я помещаю код ниже того, что я пробовал. Ошибка, которую я получаю, заключается в
pymysql.ошибка.InternalError: (1698, «Доступ запрещен для пользователя ‘root’ @’localhost'») Я много пробовал, но, кажется, ничего не получается.
Заранее спасибо.Пожалуйста, помогите.
import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
user='root',
password='passwd',
db='intruder',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `gps` ( `GPSData`) VALUES (%s)"
cursor.execute(sql, ('HelloWorld'))
connection.commit()
finally:
connection.close()
Ответ №1:
Используйте пользователя, не являющегося пользователем root, и сохраните его на случай, если вы потеряете пароль:
sudo mysql
create user gps@localhost IDENTIFIED BY 'securepassword';
GRANT ALL ON intruder.* TO gps@localhost;
Затем используйте:
connection = pymysql.connect(host='localhost',
user='gps',
password='securepassword',
db='intruder', ...
Комментарии:
1. Благодарю вас, сэр. Но я все еще получаю ту же ошибку.