在mysql默认的设置下,root是不可以通过远程连接进行登录的。如果需要进行远程登录怎么办呢?
这里我们可以通过添加用户及访问权限来完成。
要么直接在root用户的基础上在加一个记录。
通过命令:
grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
flush privileges; * 刷新刚才的内容*
这里的grant是mysql的授权命令
命令的格式是:grant 权限 on 数据库对象 to 用户
grant普通数据用户,查询、插入、更新、删除 数据库中的所有表数据的权限。
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
也可以用一条命令来代替:
grant select, insert, update, delete on testdb.* to common_user@'%'
还有其他挺多功能。这里就不一一介绍了:https://www.cnblogs.com/crxis/p/7044582.html
all privileges on *.*
这里的意思是所有权限在*.*。其中privileges关键词可以缺省。all on *.*的作用是一样的。
*.*是什么意思呢?首先。我们要知道*是SQL语句中的通配符。
点前代表的是数据库。点后的代表是对应数据库中的表。所以,*.*是所有数据库中的所有表。
我们也可以指定,例如:grant all on database.* 代表将database这个数据库的所有表给出权限。其他数据库的权限不给出。
to 创建的用户名 @"%" identified by "密码"
这个应该还是比较好理解的。把之前选择的权限赋值到一个用户中。这个用户的密码也在这里设定。
这里要注意的是:"%"这个是统配符。他匹配所有的ip连接。如果把localhost替换掉%,那这个用户就是只允许本地登录连接。
其实解释到这里,就应该明白了如何创建一个允许远程登录的用户了。
不过呢。还有一点,你设置好了用户后,还需要将电脑/服务器的端口打开。否则还是无法远程登录的。