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 -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 连接方式的介绍
所以如果在连接 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 。