I've created a custom user by executing:
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypwd';
mysql> GRANT select, update, alter ON mydb.* TO myuser@localhost;
My user only needs to read data from the database, update entries and change a few table's structure using the ALTER command.
Now I want to execute the following script:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="myuser",
passwd="mypwd",
database="mydb")
print(db);
I don't fully understand why, but following error occurrs:
Traceback (most recent call last):
File "conneciton.py", line 3, in <module>
weewxDb = mysql.connector.connect(
File "/usr/lib/python3/dist-packages/mysql/connector/__init__.py", line 173, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 102, in __init__
self.connect(**kwargs)
File "/usr/lib/python3/dist-packages/mysql/connector/abstracts.py", line 735, in connect
self._open_connection()
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 250, in _open_connection
self._do_auth(self._user, self._password,
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 172, in _do_auth
self._auth_switch_request(username, password)
File "/usr/lib/python3/dist-packages/mysql/connector/connection.py", line 216, in _auth_switch_request
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1044 (42000): Access denied for user 'myuser'@'localhost' to database 'mydb'
I think my user is missing some privileges. But which? I want to give him as few permissions as possible.