在网上有很多关于这个的解决方案,写的比较详细:

1、 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -p123
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>flush privileges; 

2、授权法。

例如,你想wangheng使用1234从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'wangheng'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
flush privileges; 

如果你想允许用户wangheng从ip为192.168.101.234的主机连接到mysql服务器,并使用1234作为密码

GRANT ALL PRIVILEGES ON *.* TO 'wangheng'@'192.168.101.234' IDENTIFIED BY '1234' WITH GRANT OPTION;
flush privileges; 

linux下还需要修改

vim /etc/mysql/my.cnf
#注释下面这句
#bind-address = 127.0.0.1