一、连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)

大部分情况下,可以用localhost代表本机127.0.0.,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。
、mysql -h 127.0.0.1 的时候,使用 TCP/IP 连接, mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain",系统通过TCP/IP方式连接数据库,127.0..1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
、mysql -h localhost 的时候,不使用TCP/IP 连接的,而使用 Unix socket连接 ,此时,mysql server则认为该client是来自"localhost",系统通过socket方式连接数据库,localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。

二、总结:

一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。而且通过socket连接时,socket文件可以在my.cnf配置文件中进行配置,参考如下:

[mysqld]
socket = /home/cdrom/work/mysql_3307/tmp/mysql.sock
其中/home/cdrom/work/mysql_3307/tmp路径必须真实存在,
默认是使用的sock的方式连接的,当没有指定sock文件的情况下,而默认的sock文件是从/tmp/mysql.sock路径下找的。

#######################################

三、单机多实例部署mysql后,通过socket登陆时,需要注意:

如果你想在本地通过“mysql -PYYY -uroot -pZZZ”来登陆mysql服务,那么你只能登陆其中的一个实例。
这是我在部署单机多实例遇到的问题,本想直接在本地通过端口来分别连接到不同实例上,结果连接到的实例都是同一个实例,你说气不气。于是想通过指定-h127.0.0.1来通过tcp/ip来连接数据库,然而可气的是,刚刚初始化的数据库根本就没有'root'@'127.0.0.1'这个用户,
只有'root'@'localhost'这个用户,以及'sys'@'localhost'用户。此时,我已经万念俱灰了,不得不用socket进行免密码登陆实例上去修改'root'@'localhost'这个用户密码,修改之后去掉skip-grant-tables参数,重启服务,
然后用'root'@'localhost'这个用户登陆上去创建其他用户,比如:'root'@'127.0.0.1'
此时登陆本地mysql服务,最佳方式就是通过指定socket文件来登陆,此时不需要指定port,这是多此一举的行为,即便指定端口号,也会被忽略,在未指定主机地址的情况下,也即-h参数,是会忽略端口号的参数值。通过指定socket文件来访问就能区别出哪一个实例了。
、如果在本地也即服务器端连接至MySQL实例的时候,未指定主机地址的情况下,默认是以sock的方式连接的,而未指定sock的时候,又是按照默认的路径找对应的sock文件此时会忽略连接命令中的端口号参数,不注意的情况下可能会造成一些凌乱。
、如果是从客户端(非服务器端)连接的话,肯定会指定IP,一旦指定了IP,对应的端口号就生效了,因此客户端不会发生类似情况。
# mysql -uroot --socket=/home/cdrom/work/mysql_3307/tmp/mysql.sock

最新文章

  1. 转: Eclipse使用SVN
  2. 过滤器(Filter)的应用
  3. Python decode与encode
  4. JAVA缓存技术之EhCache
  5. 关于MySQL建表
  6. Django官方文档学习1——第一个helloworld页面
  7. Java [Leetcode 112]Path Sum
  8. 测试和恢复性的争论:面向对象vs.函数式编程
  9. HTML5学习笔记<一>: 认识H5
  10. 利用shell批量改名和linux中取随机数的方法
  11. Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 解决办法
  12. springBoot 自动配置原理--自己新建一个 starter
  13. Bootstrap 基础讲解2
  14. matlab : Nelder mead simplex 单纯形直接搜索算法;
  15. python-web自动化环境安装
  16. 项目部署到liunx环境下访问接口返回异常
  17. WGCNA | weighted correlation network analysis
  18. chrome hosts
  19. Barricade HDU - 5889(最短路+最小割)
  20. 查看oracle数据库编码:

热门文章

  1. C++之STL(标准模板库)
  2. (干货)java中如何根据一个时间获取属于本年那一周,本周的开始时间以及最后一天时间。并且设置起始时间为周6.结束时间为周5
  3. Codeforces 1166A - Silent Classroom
  4. Spring 源码学习——注册 BeanDefinition
  5. 18-Ubuntu-文件和目录命令-创建文件和目录-touch和mkdir
  6. 【CF1215F】 Radio Stations
  7. Apocalypse Someday
  8. python中与time模块和datetime模块相关操作
  9. mkdir: Cannot create directory /file. Name node is in safe mode.
  10. 0929CSP-S模拟测试赛后总结