安装“在单机上模拟部署生产环境集群” tidb后,mysql客户端连接报错Access denied

【 TiDB 使用环境】测试
【 TiDB 版本】v8.1.0
【复现路径】
按照官网文档操作后:https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb#在单机上模拟部署生产环境集群

【遇到的问题:问题现象及影响】
外部 mysql 客户端无法连接到tidb,但是本地localhost登录却可以。
连接命令: mysql -h 172...* -u myuser -P 4000;
注意:我并没有设置密码。
报错:Access denied for user ‘myuser’@‘172...’ (using password: NO);
设置了密码也不行,报错:
Access denied for user ‘myuser’@'172.
..’ (using password: YES);
mysql 版本 :mysql Ver 8.0.39-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
【资源配置】

global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/tidb-deploy"
 data_dir: "/tidb-data"
# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115
server_configs:
 tidb:
   instance.tidb_slow_log_threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"
pd_servers:
 - host: localhost
tidb_servers:
 - host: localhost
tikv_servers:
 - host: localhost
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "logic-host-1" }
 - host: localhost
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "logic-host-2" }
 - host: localhost
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "logic-host-3" }
tiflash_servers:
 - host: localhost
monitoring_servers:
 - host: localhost
grafana_servers:
 - host: localhost

mysql -h 172.. .* -u myuser -P 4000 -p 加个-p试试

额,你用localhost设定地址,你的进程应该只有localhost才能访问,你执行下netstat -anp|grep 4000看下,应该只监听了localhost这一个地址的4000端口,你应该设置host为你外部能连接到的ip

配置文件里应该要配置IP吧

服务器内部命令连接看看呢

单机装不要用localhosts 改成ip 127.0.0.1

  1. 查下网络监听,netstat -lantp|grep LISTEN

2.权限情况看下截图

后面再加个-p 试一下看看

1 个赞

像这样

1 个赞

按照官方的文档部署要求,host应该是本机的ip地址。
检查一下防火墙状态,而如果是云服务器可以检查一下安全组是否开放规则

看下ipv6关了没