import pymysql.cursors
myServer = 'localhost'
myDatabase = 'mainDB'
myUser = 'root'
myPassword = 'root'
link = pymysql.connect( host = myServer,
db = myDatabase,
user = myUser,
password = myPassword)
Ошибка:
pymysql.err.InternalError: (1698, "Access denied for user 'root'@'localhost'")
Такая же ошибка при попытке подключиться через терминал используя это
mysql -u root -p
но так sudo mysql -u root -p проблем нет.
Пытаюсь запустить файл с программой с правами суперпользователя, но ошибка остаётся на месте.
Мозгом понимаю что проблема элементарная и надо просто кому-то каких-то прав дать, но 2 дня уже не могу понять кому и каких именно.
Ubuntu 18.04, mysql Ver 14.14 Distrib 5.7.24, Python 3.6.7
Проблема видимо не связанна с python попробуйте выполнить в терминале БД эти команды:
UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='имя_пользователя';
UPDATE mysql.db SET Host='%' WHERE Host='localhost' AND User='имя_пользователя';
FLUSH PRIVILEGES;
(не забудьте поменять имя_пользователя на нужное вам)
так же, если это вдруг не поможет, попробуйте ввести это в терминале:
systemctl stop mysqld
mysqld --skip-grant-tables
А затем это в терминале БД:
USE mysql;
UPDATE user SET Password=PASSWORD('ваш_пароль') where USER='root';
FLUSH PRIVILEGES;
В Первом способе, вы разрешаете подключаться к БД с любых IP
во втором же, вы перезапускаете службу mysql без проверки безопасности, и меняете пароль у пользователя root на ваш_пароль не забудьте сделать удобный вам пароль
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости