tidb开启socket,就只能用localhost连接?

版本:

v4.0.2

远程连接报错:

ERROR 1045 (28000): Access denied for user 'prog_passport'@'localhost' (using password: NO)

host竟然是localhost

监听端口是:

tcp6       0      0 :::4000                 :::*                    LISTEN      27092/bin/tidb-serv

先本地登录,然后把localhost 修改为 %,在重新授权一下(参考Mysql 的步骤就好了)

基本就可以了

已经是%了

相同的用户名密码,如果开启socket,远程就不能连接,就只能在tidb本地才能连接

如果授权所有的即%,那么开启socket是可以远程连接;但是如果只授权某个网段如:10.1.%这样,开启socket就不能远程连接了

我还以为你发现了重大bug
结果自己一试,并没有复现你说的问题。

你甚至都没有贴出来证据,只是在描述说你无法远程连接

你是4.0.2版本?

你怎么测试的?

1、在tidb-server加入–socket=/tmp/mysql.socket
2、重启tidb-server
3、创建账号’prog_passport’@‘10.1.1.5’
4、登入10.1.1.5,用prog_passport连接tidb,报如下错误:
ERROR 1045 (28000): Access denied for user ‘prog_passport’@‘localhost’ (using password: YES)

版本:
v4.0.2

我错了,我用的不是这么老的版本,也许有bug

不过你描述清楚了也方便官方技术支持解答你的问题

好的,谢谢回复,我测试了下5.0版本是可以

我试了一下 v4.0.2 ,的确有问题。不过跟你说的也不完全一致。

tidb-server 开启 socket 连接之后,如果创建的账户是需要密码认证的,即使 host_name%, 也不能远程访问

CREATE USER [IF NOT EXISTS] 'user_name'@'host_name' [IDENTIFIED BY 'auth_string'];

有一条这样的日志

[conn.go:573] ["open new session failure"] [conn=16]
[error="[server:1045]Access denied for user 'xxx'@'localhost' (using password: NO)"]