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值來看,root用戶可以在任何機器對mysql進行連接,而mysql和abc用戶只能在本地使用UNIX域套接字的方式連接mysql。
-
命令
連接類型
mysql -u user -p
UNIX域套接字
mysql –socket=/tmp/my.sock -u user -p
UNIX域套接字
mysql -h localhost -u user -p
UNIX域套接字
mysql -h domain -u user -p
TCP/IP套接字
mysql -h *.*.*.* -u user -p
TCP/IP套接字
mysql -h 127.0.0.1(-p*) -u user -p
TCP/IP套接字
mysql –sock=/tmp/mysql.sock -h 127.0.0.1 -u user -p
TCP/IP套接字
所以如果在連接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。