| 
 mysql的连接方式有两种:  
 
     mysql -u root -p  
     mysql -h localhost -u root -p  
 
     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 user set host = '192.168.109.45' where user = 'mysql';  
 
 grant all privileges on *.* to 'user'@'192.168.109.45 identified by 'password' ;  
   
grant的使用方法:grant 权限 on 数据库对象 to 用户名@host值;  
    
注:host的值是%时,代表这个用户可以在任何地方连接mysql。  |