标签:using 方便 通过 ica get 用户 是你 navicat mysql
首先,先创建一个用户,这步应该很简单。
用root账户(或者其他有权限的账户)登录,
mysql -u root -p 回车
输入密码 回车
切换到mysql表
在user表里插入一个用户就OK
mysql> use mysql
Database changed
mysql> insert into user(host,user,password) values(‘localhost‘,‘test‘,password(‘123456‘));
这样就创建了一个名为test的用户
然后给该用户授权
如果你在学习C/C++的过程中遇到了问题,可以来加入小编的企鹅圈问小编哦~小编很热情的(●’?’●)
授权还是得谨慎操作,尤其是你建这个用户不是给自己用,而是公共用的时候,如果赋予了很大的权限,有可能一个不熟悉操作的人就把数据库给毁了。授予该用户必须的权限即可。尤其是权限表的改写权限,最好不要给除root用户外的其他任何用户。
这里建一个数据库,为了方便这里把该库所有的权限给test,即得赋权完需要刷新下权限,使之生效。
mysql> create database testDB;
Query OK, 1 row affected (0.04 sec)
mysql> grant all privileges on testDB.* to test@localhost identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
以上是教科书式的方法,事实上也确实创建了一个用户,我们也可以试着登录下。
接下来我们远程连接一下看看。
以Navicat for mysql作为工具为例。
却发现报1045的错误
1045 -Access denied for user ‘root‘@‘182.110.4.196‘(using password:YED)
难道上面介绍的操作有错吗?教科书式的操作,能错到哪去呢。
嗯,是的,操作并没有问题,问题出在上面我们是创建了一个本地用户,所以我们用命令窗口该用户是可以登录的。那怎么把本地用户允许远程登录呢?
两种方法。
方法一:把允许远程访问的用户host改为%,比如上面说到的test用户,update一下就可以了,就不截图了。
注:为什么是%,其实开始博主也纳闷了一下。再一想就明白了,%在mysql中是通配符的,host改为%即表示任意主机都可以通过test及其密码来访问数据库。
方法二:还是授权
mysql> GRANT ALL PRIVILEGES ON testDB.* TO ‘test‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
这回再试试,连接一下,轻松连上。
再回到刚那个%,通配符通配符,即可以匹配某一类。那我不想给所有IP都访问数据库的权限是不是可以多点限制?比如我只想给192.168.1.*的用户授权,那么就可以把host改为192.168.1.%或者授权语句改为
GRANT ALL PRIVILEGES ON testDB.* TO ‘test‘@‘192.168.1.%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;
嗯,就是这么用。一点点操作,一个可远程连接的用户就建好了。
标签:using 方便 通过 ica get 用户 是你 navicat mysql
原文地址:https://www.cnblogs.com/zuishuaideou/p/14133828.html