我正在尝试连接到本地托管的MariaDB Docker容器。我正在使用以下docker compose设置:
mariadb:
image: mariadb
container_name: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_DATABASE: conciergedb
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- ${DOCKERPATH}/mariadb:/var/lib/mysql
- ./mariainit:/docker-entrypoint-initdb.d
ports:
- 3306:3306
networks:
network:
ipv4_address: 10.5.0.3
我使用mysql -h 127.0.0.1 -u brian -p
和MySQLEbenchbench通过Ubuntu wsl上的mysql cli进行了连接,并使用了以下配置:
Hostname: 127.0.0.1
Port: 3306
Username: brian
Default Schema: conciergedb
现在,回到.NET(使用MySql.Data.MySqlClient),我使用以下连接字符串:
server=127.0.0.1;port=3306;user id=brian;password=<PASS>;database=conciergedb;ConnectionTimeout=60;
这会在conn.Open()上抛出以下错误:
System.InvalidCastException: 'Object cannot be cast from DBNull to other types.'
如果我没有关闭连接,Docker日志会在调试退出时抛出以下内容:
[Warning] Aborted connection # to db: 'conciergedb' user: 'brian' host: '10.5.0.1' (Got an error reading communication packets)
所以这告诉我,有些事情正在经历,但没有得到承认。有什么想法,我可以尝试?
P.S.我也试着连接到10.5.0.3,但没有用。
1条答案
按热度按时间eeq64g8w1#
我假设你的应用程序也运行在与MariaDb相同的Docker网络中的容器中。在这种情况下,问题是你的连接字符串。运行MariaDb的容器的名称是;
因此,您的数据库连接字符串为: