mysql的连接方式有两种:
UNIX域套接字连接,如:
mysql -u root -p
mysql -h localhost -u root -p
TCP/IP套接字连接,如:
mysql -h 客户端ip -u root -p
mysql数据库中的user表中的host值限制着mysql用户只能以什么样的方式连接。
-
host
user
127.0.0.1
root
::1
root
localhost
mysql
localhost
root
localhost
abc
Localhost.localdomian
root
以上是我的user表中的host和user值
根据user表中的host值来看,root用户可以在任何机器对mysql进行连接,而mysql和abc用户只能在本地使用UNIX域套接字的方式连接mysql。
-
命令
连接类型
mysql
-u user -pUNIX域套接字
mysql
–socket=/tmp/my.sock -u user -pUNIX域套接字
mysql
-h localhost -u user -pUNIX域套接字
mysql
-h domain -u user -pTCP/IP套接字
mysql
-h *.*.*.* -u user -pTCP/IP套接字
mysql
-h 127.0.0.1(-p*) -u user -pTCP/IP套接字
mysql
–sock=/tmp/mysql.sock -h 127.0.0.1 -u user -pTCP/IP套接字
以上是对mysql连接方式的介绍
所以如果在连接mysql
时出现1045提示,说明你的连接方式不正确。只要查看host中的值,然后选择相应的连接方式即可。
修改用户的连接方式(只能在ip为192.168.109.45的机器连接)
使用update对host值进行修改:
update
user set host = '192.168.109.45' where user = 'mysql';
用grant修改
grant
all privileges on *.* to 'user'@'192.168.109.45 identified by
'password' ;
grant的使用方法:grant
权限 on
数据库对象
to
用户名@host值;
注:host的值是%时,代表这个用户可以在任何地方连接mysql。