1、创建数据库
create database if not exists test176 default charset utf8 collate utf8_general_ci;
#utf8_general_cs 大小写敏感
#如果数据库test176不存在,则创建数据库test76;charset utf8 字符集默认utf8,collate utf8_general_ci 大小写不敏感

2、创建用户
create user 'username'@'ip' identified by 'password'                   #创建用户名username,密码为password的用户,只能在该IP电脑上登录
create user 'username'@'localhost' identified by 'password'      #创建用户名username,密码为password的用户,只能本地登录
create user 'username'@'%' identified by 'password'      #创建用户名username,密码为password的用户,无IP限制
create user 'username'@'%' identified by -      #创建密码为空的用户,不用密码可以登录
示例:
create user 'test'@'%' identified by 'ios'      #创建用户名为test,密码为ios的用户

3、查看执行的用户是否有放开授权的权限
select host,user,password,Grant_priv,Super_priv from mysql.user;      #查看所有用户是否有授权的权限

#给root用户放开授权的权限并提交刷新生效,客户端执行的话,执行后要重新打开一个客户端才能开始授权
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;      #提交刷新权限

4、用户授权
grant privileges on databasename.tablename to 'username'@'host'        #给用户授权,授权后的用户无给其他用户授权的权限
或者
grant privileges on databasename.tablename to 'username'@'host' with grant option;      #授权后的用户有给其他用户授权的权限
#privileges表示权限,如select,insert,update,delete,alter,drop,create,all
#databasename.tablename 表示授权的数据库名和表名,也可以是#databasename.*(所有表)或者*.*(所有库的所有表)

示例:
grant select,insert,update,delete,create,drop,alter on localmysql.* to 'test'@'%'        #%表示所有可登录的ip
#把数据库localmysql所有表的增删改查权限赋给test,不限制登录ip

grant select,insert,update on localmysql.* to 'test'@'%' with grant option;
#with grant option表示授权后的用户能授权其他用户

grant select on localmysql.* to 'test'@'%'          #%表示所有可登录的ip,表示只赋查询的权限给test用户
grant all on *.* to 'test'@'%'          #表示把所有数据库和表的所有操作权限赋权给test
#all是所有权限,*.*是所有数据库和表,test表示数据库用户,%表示不限登录IP

注意:用以上命令授权的用户无权限给其它用户授权,如果想让该用户可以授权,用以下命令:
grant privileges on databasename.tablename to 'username'@'host' WITH GRANT OPTION;
示例:
grant all on *.* to 'test'@'%' with grant option;        #授权后,用户test也有权限授权给其他用户权限

5、修改用户名或者用户密码

修改用户名:
update mysql.user set user='testing' where user='test';
FLUSH PRIVILEGES;

#修改非当前登录用户密码
set password for 'username'@'ip'=password('newpassword');
FLUSH PRIVILEGES;
示例:
set password for 'iosgd'@'%'=password('ios');        #把用户iosgd的密码修改为ios
FLUSH PRIVILEGES;

#修改当前登录用户密码
set password=password('newpassword');

示例:

set password=password('abc123');       #把当前登录的用户密码修改为abc123

6、撤销用户权限:
revoke privileges on databasename.tablename from 'username'@'host' #与授权是一样
示例:
revoke update,delete on localmysql.* from 'test'@'%';       #表示撤销test用户localmysql数据库所有表的修改、删除权限
revoke all on *.* from 'test'@'%' ;       #表示撤销test用户所有数据库、表的所有操作权限
注意点:给用户授权了select某个数据库或表的select权限时,是无法撤销的

7、删除用户
drop user 'username'@'ip';      #删除用户

示例:

drop user 'test'@'%';    #删除用户test

参考博客:https://www.cnblogs.com/zeroone/articles/2298942.html

mysql新建数据库、新建用户及授权操作的更多相关文章

  1. MySQL/MariaDB数据库的用户和权限管理

    MySQL/MariaDB数据库的用户和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.元数据数据库(mysql) 系统授权表(均在mysql数据库中): db hos ...

  2. dotnetcore ef 调用多个数据库时用户命令执行操作报错

    dotnetcore ef 调用多个数据库时用户命令执行操作报错 1.多个DbContext 时报错: 报错: More than one DbContext was found. Specify w ...

  3. oracle 数据库创建用户并授权

    oracle 数据库创建用户并授权 备注: userName 为用户名,123456 为密码 drop user userName cascade; create user userName iden ...

  4. MySQL/MariaDB数据库的多表查询操作

    MySQL/MariaDB数据库的多表查询操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.单表查询小试牛刀 [root@node105.yinzhengjie.org.cn ...

  5. mysql 创建数据库,添加用户,用户授权

    一.创建mysql数据库 1.创建数据库语法 --创建名称为"testdb"数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb ...

  6. MySQL创建数据库与用户

    root远程访问授权 mysql> SHOW DATABASES; +--------------------+ | Database           | +---------------- ...

  7. mysql创建、删除用户与授权(linux測试)

    注:我的执行环境是SUSE Linux + mysql5.6 一.创建用户:  命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';  ...

  8. Mysql创建数据库以及用户分配权限

    一.创建mysql数据库 1.创建数据库语法 --创建名称为“testdb”数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb DEFAULT C ...

  9. mysql创建远程登陆用户并授权

    在创建安装微擎的过程中,针对第四步 创建远程登陆用户并授权        > grant all PRIVILEGES on database.* to root@'127.0.0.1'  id ...

随机推荐

  1. Effective Java 第三版——83. 明智谨慎地使用延迟初始化

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  2. 转:一千行MYSQL 笔记

    原文地址: https://shockerli.net/post/1000-line-mysql-note/ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ ...

  3. 原创科幻短篇《VR》

    近些年VR很火,现在似乎又降温了,那么问题来了:VR到底有前景吗?我农村来的读书又少看不清楚哇.近些年房地产很火,现在似乎还是很火,那么问题来了:房价到底会降吗?我农村来的读书又少看不清楚哇. 以下正 ...

  4. Sublime text 3 格式化代码 插件

    JsFormat: 重新打开sublime就能使用js格式化插件 使用方法: 1.快捷键:ctrl+alt+f 2.或者先用快捷键打开命令面板 “ctrl + shift + p”, 再输入 “For ...

  5. Mysql 索引问题-日期索引使用

    这两天发现原来的查询效率慢了,使用explain 查看,居然没有使用索引,我的索引是日期类型的,首先想到的是mysql对日期类型的索引的处理机制是不是不同,在where条件里试了几种,发现效果都差不多 ...

  6. Super expression must either be null or a function, not undefined

    按照之前买的用JavaScript开发移动应用的例子来编写的,然后报了这个错.我的头部声明是这样的 var React = require('react-native'); var { Text, V ...

  7. 【iCore4 双核心板_FPGA】实验十八:Niosii——基于内部RAM建立第一个软核

    实验指导书及源代码下载地址: 链接:https://pan.baidu.com/s/1mjpwGJI 密码:6u8v iCore4链接:

  8. <%: Html.DisplayNameFor与 <%: Html.DisplayFor的区别

    DisplayNameForModel只有在model定义了DisplayName时有用,简单说,DisplayNameFor是针对model里的"字段"别名,DisplayNam ...

  9. SAP 生产订单变更管理 OCM Order Changement Management

    SAP OCM Order Changement Management  一.目的 订单变更管理系统是当我们的订单(生产订单.计划订单.采购订单)已经存在的时候,其物料主数据或销售数据有变更时,我们可 ...

  10. ocelot配置

    动态配置 { "ReRoutes": [], "Aggregates": [], "GlobalConfiguration": { &quo ...