mysql 登录socket与TCP
对oracle 登录的很清楚
sqlplus / as sysdba
sqlplus scott/tiger
这种登录方式属于本地登录,不走网络,跟监听没有关系,登录的实例为在环境变量中设置的$ORACLE_SID
sqlplus scott/tiger@orcl
这种登录方式即使在服务器上登录也是通过网络,需要监听配置的。
转向mysql时,好久也没搞明白mysql的登录
今天明白了一点点,先记录一下,后续再补充。
1. socket
socket是用于同一台主机的进程间通讯(IPC),不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另外一个进程,消息既不会丢失也不会顺序错乱。
一般在配置文件中会配置
[root@MySQL56_L1 ~]# more /etc/my.cnf [client] port = 3306 socket = /tmp/mysql3306.sock
select user,host,plugin from user where user ='root';
+------+-----------+-----------------------+
| user | host | plugin |
+------+-----------+-----------------------+
| root | % | mysql_native_password |
| root | 127.0.0.1 | mysql_native_password |
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+
原来root 通过-h127.0.0.1登录时使用的是 mysql_native_password, 而默认修改密码使用的插件是caching_sha2_password
所以需要修改密码时加入with mysql_native_password
alter user root@'127.0.0.1' identified with mysql_native_password by 'abc123';