Я испытываю конкретную проблему с ящиком Mysql_async Rust (v0.34.2) при работе внутри контейнеров Docker. Та же самая база данных MySQL отлично работает с клиентами Python, но Rust выходит из строя постоянно. Составьте
[*] MySQL: 8.0 (работа в отдельном контейнере)
[*] Хост: macOS (Apple Silicon), контейнеры работают как Linux/AMD64
Проблема
, когда я сталкиваюсь с MyS -in Io (io (os {код: 22, вид: Invalidinput, сообщение: «Неверный аргумент»}))
code
Минимальный случай репродукции:
use mysql_async::{prelude::*, Pool, PoolOpts, OptsBuilder};
#[tokio::main]
async fn main() -> Result {
let opts = OptsBuilder::default()
.ip_or_hostname("nas_catalog_mysql") // Docker container name
.tcp_port(3306)
.db_name(Some("nas_catalog"))
.user(Some("nas_catalog_user"))
.pass(Some("nas_catalog_password"))
.tcp_keepalive(Some(30u32))
.prefer_socket(false);
let pool_opts = PoolOpts::default()
.with_constraints(mysql_async::PoolConstraints::new(1, 5).unwrap());
let pool = Pool::new(opts.pool_opts(pool_opts));
// This line fails with OS error 22
let mut conn = pool.get_conn().await?;
conn.query_drop("SELECT 1").await?;
Ok(())
}
< /code>
что работает < /h2>
- Разрешение DNS: NSLOKUP NAS_CATALOG_MYSQL Решает правильно < /li>
TCP подключение: NC -ZV NAS_CATALOG_MYSQL 3306. Рука: Telnet NAS_CATALOG_MYSQL 3306 показывает правильное приветствие MySQL - Клиенты Python: отлично работайте с теми же учетными данными/хостом:
Подробнее здесь: https://stackoverflow.com/questions/797 ... ainer-whil
Мобильная версия