默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log
首先登录: mysql -u root -h localhost -p
use mysql #打开mysql数据库
#将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip
update user set host='%' where user='root' and host='localhost';
flush privileges; #刷新权限表,使配置生效
然后我们就能远程连接我们的mysql了。
3、如果您想关闭远程连接,恢复mysql的默认设置(只能本地连接),您可以通过以下步骤操作:
use mysql #打开mysql数据库
#将host设置为localhost表示只能本地连接mysql
update user set host='localhost' where user='root';
flush privileges; #刷新权限表,使配置生效
备注:您也可以添加一个用户名为yuancheng,密码为123456,权限为%(表示任意ip都能连接)的远程连接用户。命令参考如下:
grant all on *.* to 'yuancheng'@'%' identified by '123456';
flush privileges;
问题原因
远程IP没有登录权限,root用户默认只能在localhost也就是只能在本机登录,需要设置允许其他IP登录权限。
解决方案
1. 在服务器内部登录数据库,然后执行
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
此语句意思是给root用户在任何IP都可以登录数据库,操作任何数据库中的任何对象。
其中:
*.* 第一个*是指数据库
*代表所有数据库
第二个*指数据库对象
*代表数据库中所有对象
'root'@'%' root是制定要授权的数据库用户
%代表允许登录的IP
123456是你的数据库密码
假如要限制只能在1.1.1.1登录,把%改成1.1.1.1 ,执行完毕后执行 flush privileges; 刷新权限
2. 然后在远程电脑mysql客户端就可以连接了。