今天使用Android Studio连接mysql的时候怎么样都连不上mysql数据库,为此我还特地用了模拟器,结果提示如下错误
W/System.err: Caused by: android.system.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
后来发现,其实模拟器默认把127.0.0.1和localhost当做本身了,可以用10.0.2.2代替127.0.0.1和localhost。
之后我就更改了ip地址,电脑自动开热点,结果还是连不上数据库,登录不了。
报错java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect的问题,此时,这便是我们电脑本机数据库的问题了,表示不能被允许远程访问,设置本机允许任何主机访问数据库就行了。
Mysql操作命令行如下:
mysql -u root -p
root
use mysql
select host from user;
update user set host='%' where user='root';
exit
net stop mysql
net start mysql
如果你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.60.121的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.60.121' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;