MySQL操作(一)用户及权限

一、mysql 里的所有用户都是存储在数据库mysql的user表里

二、创建普通用户、赋权、撤销权限 的操作

1、创建用户(需要先用root进去mysql)格式:create  user  '用户名'@'IP'  identified by  '密码';    # 用户名随便起,IP需是真实存在的IP

查看当前可连接数据库的用户有哪些:select  user,host  from  mysql.user;

另外开一个cmd终端,用test进入 mysql,可以看到普通用户test进入数据库后几乎没有任何权限,show databases;能够看到的数据库也只有2个

引申:设置test1用户时用%则表示test1用户可以用任何ip连接数据库

新开个cmd终端,用test1用户去连接数据库,看看效果:

 2、为创建的用户赋权(需要先用root进去mysql):

 2.1  赋权语句:grant  权限1,权限2,.....  on  数据库名.*   to  ‘用户名’@'IP'或者'%';

#  on  数据库.*  :表示对指定的数据库里的所有表赋权

#  to  ‘用户名’@'IP :表示给 【‘用户名’@'IP 】这个操作赋权

2.2  给用户赋权所有的数据库用 :  *.*

2.3  给用户赋权指定数据库下的所有表的所有操作权限用: all 或者 all  privileges 

示例语句:grant all privileges on *.* to 'test'@'127.0.0.1';       # 这样写相当于是root权限了

示例:

新开个cmd终端,用test用户去连接数据库:

2.4  同时创建用户和赋权:grant  select,update,insert  on  shop.*   to   'test3'@'127.0.0.1'  identified  by  '123456';

 3、删除用户及撤销权限(需要先用root进去mysql)

3.1插销权限语句格式:revoke  权限1,权限2,...  on 数据库名.*  from '用户名'@‘IP’或者'%';

新开个cmd终端,用test用户去连接数据库:

 3.2删除用户  DROP USER ‘用户名’@‘localhost’;

 三、mysql 允许远程访问

1.修改root用户host(以root用户为例)

 1 -- 在安装mysql的机器上运行:
 2 mysql -u root -proot
 3 mysql>use mysql;
 4 mysql>update user set host = '%' where user ='root';
 5 mysql>select host, user from user; //查看用户
 6 
 7 
 8 
 9 1、d:/mysql/bin/>mysql -h localhost -u root //这样应该可以进入MySQL服务器
10 2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
11 3、mysql>FLUSH PRIVILEGES //修改生效
12 4、mysql>EXIT //退出MySQL服务器

2、检查防火墙,确保3306端口对外开放

参考链接:https://www.cnblogs.com/wodexk/p/10674646.html

原文地址:https://www.cnblogs.com/guliang/p/11769261.html