2. mysql -h localhost 的时候,是不使用TCP/IP连接的,而使用Unix socket;此时,mysql server则认为该client是来自"localhost"
3. mysql权限管理中的"localhost"有特定含义:
注意:虽然两者连接方式有区别,但当localhost 为默认的127.0.0.1时,两种连接方式使用的权限记录都是以下的1.row的记录(因为记录在前,先被匹配)
tcp是必须双方握手之后才算连接,每次传输信息都会经过双方确认,相当于生活中的打电话。udp不需要双方握手,发送方也不去验证对方是否已经收到信息。相当于现在的qq和微信,不管对方是否在线,都能讲信息发送过去。
几个可能:1. 用户名、密码错误,所以无法访问
2. 数据库端设置了IP访问权限,不能用localhost访问。换成具体的IP地址试试。
3. 数据库端设置了相关 *** 作权限,该用户没有create权限。
mysql -u root -p
mysql>use mysql
mysql>select 'host' from user where user='root'
mysql>update user set host = '%' where user ='root'
mysql>flush privileges
mysql>select 'host' from user where user='root'
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)