Access denied dla usera przy próbie połaczenia z bazą danych

0

Mam problem z połączeniem się do bazy danych mysql.
Kroki jakie wykonałem:

  1. Pobrałem i uruchomiłem obraz mysql komendą:
    sudo docker run --name sensorbox -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql

  2. Połączyłem się z mysql z hosta:
    docker exec -it sensorbox bash -l

  3. Stworzyłem bazę danych, tabelę oraz użytkownika:

CREATE DATABASE IF NOT EXISTS sensorbox
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE sensorbox;

CREATE TABLE IF NOT EXISTS sensor (
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    longname VARCHAR(50) NOT NULL,
    temperature FLOAT NOT NULL,
    press FLOAT NOT NULL,
    created DATETIME NOT NULL,
    humidity FLOAT NOT NULL
);

CREATE USER IF NOT EXISTS 'user'@'localhost';
GRANT SELECT, INSERT, UPDATE ON sensorbox.* TO 'user'@'localhost';
ALTER USER 'user'@'localhost' IDENTIFIED BY '1234';
  1. W swoim programie napisanym w Golangu, próbuję połączyć się z bazą danych:
db, err := sql.Open("mysql", "user:1234@tcp(localhost:3306)/sensorbox")

ale otrzymuję błąd:
Error 1045: Access denied for user 'user'@'172.17.0.1' (using password: YES) exit status 1

Nie wiem co robię źle, ponieważ bezpośrednio z kontenera mogę się połączyć:
mysql -u user -p 1234
Co więcej mogę się z programu zalogować jako root, tzn poniższy kod działa poprawnie:

db, err := sql.Open("mysql", "root:123456@tcp(localhost:3306)/sensorbox")

1 użytkowników online, w tym zalogowanych: 0, gości: 1