【发布时间】:2021-10-16 01:39:34
【问题描述】:
我正在尝试通过 perl 脚本连接到容器中运行的 mysql。
容器
1063b3f15b0f mysql:latest "docker-entrypoint.s…" 3 days ago Up 3 days 0.0.0.0:3306->3306/tcp, 33060/tcp test_db
使用 tcp 协议在主机上进行连接
mysql -P 3306 --protocol=tcp -u root -p
但不确定如何在 perl 中使用 DBI 指定协议
use DBI;
my $driver = "mysql";
my $host = "127.0.0.1";
my $database = "users";
my $dsn = "DBI:$driver:database=$database,host=$host";
my $userid = "root";
my $password = "testpw";
my $dbh = DBI->connect($dsn, $userid, $password ) or die $DBI::errstr;
因错误而失败
DBI connect('database=users,host=127.0.0.1','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES) at update_db.pl line 10.
Access denied for user 'root'@'localhost' (using password: YES) at update_db.pl line 10.
有人可以帮忙破解吗?
【问题讨论】:
-
你真的可以在同一台机器上使用
mysql客户端吗?它通过 DBI 到达服务器,因此端口必须正确。但是它说你进不去。听起来好像mysql中的授权不正确。
标签: mysql docker perl containers dbi