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
希望本文章对有需要的小伙伴有所帮助