MySQL有两种连接方式:
(1)TCP/IP
(2)socket
其实windows下还支持管道连接方式。
对mysql.sock来说,其作用是程序与MySQLserver处于同一台机器,发起本地连接时可用。
例如你无须定义连接host的具体IP,只要为空或localhost就可以。
在此种情况下,即使你改变MySQL的外部port也是一样可能正常连接。
因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的,经根据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。
那么对于外部连接,必须是要变更port才能连接的。
# systemctl status mysqld
# mysql --help
mysql.sock 文件解析
https://segmentfault.com/a/1190000016098820
https://blog.csdn.net/kerwin612/article/details/8568206
mysql.sock文件作用
https://www.jianshu.com/p/d6c1e3458ca9
How to Protect or Change the MySQL Unix Socket File
https://dev.mysql.com/doc/refman/8.0/en/problems-with-mysql-sock.html
Missing mysqld.sock file?
https://mariadb.com/kb/en/library/missing-mysqldsock-file/
How to solve “Can't connect to local MySQL server through socket” error?
https://dba.stackexchange.com/questions/98467/how-to-solve-cant-connect-to-local-mysql-server-through-socket-error
https://dba.stackexchange.com/questions/11027/cant-connect-to-local-mysql-server-through-socket-var-lib-mysql-mysql-sock
MySQL技术特点(1)它使用的核心线程是完全多线程,支持多处理器。(2)有多种列类型:1、2、3、4和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR和ENUM类似。(3)它通过一个高度化的类库实现SQL函数库并像其一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。(4)全面支持SQL的GROUP BY 和ORDER BY 子句,支持聚合函数(COUNTO()、AVG()、STD()、SUM() 、MAX()和MIN()。你可以在同一查询中来自不同数据库的表。(5)支持ANSI SQL的LEFTOUTER JON和ODBC。(6)所有列都有默认值。你可以用INSERT插入一个表列的子集,那些没有明确给定值的列设置为他们的默认值。(7)MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCLAPI。(8)利用优化的一遍扫描多重连接(one-sweepmulti-join)工具可以非常快速地进行网络连接。(9)通过高度优化的类库实现SQL函数库,通常在查询初始化后没有任何内存分配。(10)可以在同一查询中混用来自不同数据库的表。(11)灵活且安全的权限和口令系统,并且准许其他主机的认证,口令有较高的安全性,因为当与一个服务器连接时,所有传送的口令都会被加密。(12)大数据库处理。可以对某些包含50,000,000个记录的数据库使用MySQL。(13)没有内存漏洞。(14)所有MySQL程序可以使用“##help"或“_?”选项获得联机帮助。(15)服务器能为客户提供多种语言的出错信息。(16)客户端使用TCP/IP连接或Linux(Socket)和NT下的命令管道连接MySQL。(17)MySQL特有的show命令可用来检索数据库表和索引的信息,explain命令可用来确定优化器如何解决一个查询。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)