MySQL允许远程登录

MySQL默认是只允本地连接的。现在大多数服务器都放在阿里云,腾讯云。我们想做开发测试,想更方便的连接远程服务器数据库。但是MYSQL默认只允许本机连接,而且远程开放root账号又相对没那么安全。这时候我们可以这么做,如果是云服务,首先要确保安全组入规则是否开放3306端口,然后确认服务器防火墙是否开放3306端口 默认是不开放的,然后直接上代码

上代码

一 ,创建用户

登陆MySQL,创建用户,命令如下:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明
  • username:你将创建的用户名 非必须情况下,不太建议使用root用户
  • host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主- 机登陆,可以使用通配符%
  • password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
举例
CREATE USER 'abc'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'abc'@'192.168.1.108' IDENDIFIED BY '123456';
CREATE USER 'abc'@'%' IDENTIFIED BY '123456';
CREATE USER 'abc'@'%' IDENTIFIED BY '';
CREATE USER 'abc'@'%';

二 ,授权

有了用户就可以管理一个或者多个数据库,root用户可以管理所有数据库。普通有用户就算被黑也不至于所有数据库都被destroy,就算被destroy掉 也可以使用bin-log实现数据恢复,以后出相关文章.命令如下

GRANT privileges ON databasename.tablename TO 'username'@'host'
说明
  • privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
  • databasename:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
举例
GRANT SELECT, INSERT ON test.navTO 'abc'@'%';
GRANT ALL ON *.* TO 'abc'@'%';
GRANT ALL ON maindataplus.* TO 'abc'@'%';

三,刷新

flush privileges

希望本文章对有需要的小伙伴有所帮助

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容