Я использую официальный docker контейнер из mysql.
Я запускал docker контейнер с этими командами]:
sudo docker run -d --name desarrollo -p 3306:3306 -h localhost -e MYSQL_ROOT_PASSWORD=admin --mount src=mysql-desarrollo,dst=/var/lib/mysql mysq
Потом подключил:
sudo docker exec -it desarrollo mysql -u root -p
Сработало. Хотя я не знаю, почему у меня есть пользователь root с хостом '%'
mysql> select user, host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
Затем я выполнил следующие предложения для создания базы данных и ее пользователя:
create database my_database CHARACTER SET utf8 COLLATE utf8_bin;
create user 'my_user'@'localhost' identified by 'my_password';
grant ALL PRIVILEGES ON *.* TO 'my_user'@'localhost';
Я назначил все привилегии, потому что, когда я назначал привилегии только для моей созданной базы данных, это не сработало.
Теперь, когда я пытаюсь подключиться к пользователю my_user через JDB, он не работает, но с пользователем root он работает (тестировался с внутренним клиентом на Intellij IDE). Это JDB C url:
jdbc:mysql://localhost:3306/my_database
Заранее благодарим за вашу помощь!