您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

mysql 8.0 创建新的数据库、用户并授权,以及相关查看并删除操作

时间:2022-05-26 11:03:33  来源:  作者:运维笔记ywbj

一:创建新的数据库、用户并授权

以创建wordPress/ target=_blank class=infotextkey>WordPress网站的数据库为例

1、创建数据库

创建可指定字符,或者不指定字符,如果不指定字符,默认为 utf8mb4 和 utf8mb4_0900_AI_ci

mb4就是most bytes4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢?

utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 MySQL 的 utf8字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 IOSAndroid手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等(utf8的缺点)。

 

#不指定字符创建
create database wordpress character;
#指定utf8字符创建
create database wordpress character set utf8;

 

2、创建用户

可自行指定用户可访问的IP地址范围。

#创建用户userwordpress,仅限本机访问,密码123456
create user 'userwordpress'@'localhost' identified by '123456';
#创建用户userwordpress,仅限192.168.10.52访问,密码123456
create user 'userwordpress'@'192.168.10.52' identified by '123456';
#创建用户userwordpress,所有IP可以访问,密码123456
create user 'userwordpress'@'%' identified by '123456';

3、授权用户

#将数据库wordpress下的所有(*)授权给userwordpress
grant all privileges on wordpress.* to 'userwordpress'@'%';
#最后刷新权限
flush privileges;

 

4、直接一步到位

或者 这种方法 :创建并授权用户,是二和三的合并。

grant all on wordpress.* to 'userwordpress'@'%' identified by '123456'
flush privileges;

 二:查询新的数据库、用户

1、查看数据库

show databases可查询所有存在的数据库

mysql> show databases;                                                                                                                                             
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set
Time: 0.008s
mysql root@(none):(none)>  

2、查看用户信息

用户信息在系统数据库mysql中的user表中。密码查询不会显示明文密码,而是显示为加密后的密文。

select user,host,authentication_string from mysql.user;

5.7以后的版本mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,否则报错:ERROR 1054 (42S22): Unknown column 'password' in 'field list'

mysql>  select user,host,authentication_string from mysql.user;                                                                                             
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| userwordpress    | %         | $A$005$v+Z!_:N3>#j                                                  |
|                  |           | |37hnnPVHEsfeJmFXX/cI9nN144VKUFUdwVggvblw3XUa08                       |
| debian-sys-maint | localhost | $A$005$T)!+a-*>                                                  |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | $A$005$Ietoh=j    ~0                                               |
+------------------+-----------+------------------------------------------------------------------------+
6 rows in set
Time: 0.008s

3、查看用户权限

有两种方式查看。

第一种方式:show grants for 'userwordpress';

mysql > show grants for 'userwordpress';                                                                                                                            
+--------------------------------------------------------------+
| Grants for userwordpress@%                                   |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `userwordpress`@`%`                    |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO `userwordpress`@`%` |
+--------------------------------------------------------------+
2 rows in set
Time: 0.007s

第二种方式: select * from mysql.user where user='userwordpress'G;

g 相当于’;’

G使每个字段打印到单独的行,也有 ’;' 的作用

只能查出哪个数据库的哪张表的权限,如查userwordpress在mysql数据库的user表的权限,显示都是N(no),没有权限,如果查root用户就都是Y(yes)选择了。

mysql> select * from mysql.user where user='userwordpress' G;                                                                                                      
***************************[ 1. row ]***************************
Host                     | %
User                     | userwordpress
Select_priv              | N
Insert_priv              | N
Update_priv              | N
Delete_priv              | N
Create_priv              | N
Drop_priv                | N
Reload_priv              | N
Shutdown_priv            | N
Process_priv             | N
File_priv                | N
Grant_priv               | N
References_priv          | N
Index_priv               | N
Alter_priv               | N
Show_db_priv             | N
Super_priv               | N
Create_tmp_table_priv    | N
Lock_tables_priv         | N
Execute_priv             | N
Repl_slave_priv          | N
Repl_client_priv         | N
Create_view_priv         | N
Show_view_priv           | N
Create_routine_priv      | N
Alter_routine_priv       | N
Create_user_priv         | N
Event_priv               | N
Trigger_priv             | N
Create_tablespace_priv   | N
ssl_type                 | 
ssl_cipher               | 
x509_issuer              | 
x509_subject             | 
max_questions            | 0
max_updates              | 0
max_connections          | 0
max_user_connections     | 0
plugin                   | caching_sha2_password
authentication_string    | $A$005$v+Z!_:N3>^T#jL^?
|37h^CnnPVHEsfeJmFXX/cI9nN144VKUFUdwVggvblw3XUa08
password_expired         | N
password_last_changed    | 2021-11-26 01:59:27
password_lifetime        | <null>
account_locked           | N
Create_role_priv         | N
Drop_role_priv           | N
Password_reuse_history   | <null>
Password_reuse_time      | <null>
Password_require_current | <null>
User_attributes          | <null>

三:删除用户,数据库

用drop而非delete,简单的区分就是,drop是删除【表】,truncate与delete则是删除表中【记录】。

删除用户

drop user 'userwordpress';
#或者
drop user 'userwordpress'@'%';

同理,删除数据库

drop database wordpress;

用drop删除时,会有确认信息,为了防止误删。(删库跑路,请谨慎操作)

mysql > drop database wordpress;                                                                                                                                    
You're about to run a destructive command.
Do you want to proceed? (y/n): y
Your call!
Query OK, 0 rows affected
Time: 0.005s


Tags:mysql 8.0   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
MySQL 8.0 数据字典表
mysql 8.0 对数据字典进行了重构,用户表、数据字典表、MySQL 其它系统表的元数据都统一保存到 mysql 库的数据字典表中了。mysql 库中,除了 general_log、slow_log 2 个日志表...【详细内容】
2023-02-04  Search: mysql 8.0  点击:(146)  评论:(0)  加入收藏
mysql 8.0 创建新的数据库、用户并授权,以及相关查看并删除操作
一:创建新的数据库、用户并授权以创建wordpress网站的数据库为例1、创建数据库创建可指定字符,或者不指定字符,如果不指定字符,默认为 utf8mb4 和 utf8mb4_0900_ai_cimb4就是mos...【详细内容】
2022-05-26  Search: mysql 8.0  点击:(506)  评论:(0)  加入收藏
解决 MySQL 8.0 一直拒绝 root 登录问题
Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES) 这个错误在网上搜一下,能看到非常多的此类问题的解决方法,但 MySQL 版本不一样,导致同一...【详细内容】
2020-10-20  Search: mysql 8.0  点击:(703)  评论:(0)  加入收藏
MySQL 8.0 运维便捷命令
有人说目前为止8.0是最好的版本,我们来看看在运维方面MySQL 8.0带来了哪些便捷命令。自MySQL 8.0 GA版本发布以来,MySQL生态发生了很大的变化,推出了很多功能 ,有人说目前为止8....【详细内容】
2020-08-20  Search: mysql 8.0  点击:(325)  评论:(0)  加入收藏
MySQL 8.0 InnoDB无锁化设计的日志系统
MySQL 8.0中一个重要的新特性是对Redo Log子系统的重构,通过引入两个新的数据结构recent_written和recent_closed,移除了之前的两个热点锁:log_sys_t::mutex和log_sys_t::flush_order_mutex。...【详细内容】
2020-01-21  Search: mysql 8.0  点击:(311)  评论:(0)  加入收藏
MySQL 8.0 shell util 特性
本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通...【详细内容】
2019-09-25  Search: mysql 8.0  点击:(822)  评论:(0)  加入收藏
mysql 8.0 常用操作
创建用户并授权创建用户CREATE USER &#39;custom&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;password&#39;; mysql 8.0 默认身份验证插件为caching_sha2_password,导致很...【详细内容】
2019-07-04  Search: mysql 8.0  点击:(1266)  评论:(0)  加入收藏
▌简易百科推荐
MySQL 核心模块揭秘
server 层会创建一个 SAVEPOINT 对象,用于存放 savepoint 信息。binlog 会把 binlog offset 写入 server 层为它分配的一块 8 字节的内存里。 InnoDB 会维护自己的 savepoint...【详细内容】
2024-04-03  爱可生开源社区    Tags:MySQL   点击:(10)  评论:(0)  加入收藏
MySQL 核心模块揭秘,你看明白了吗?
为了提升分配 undo 段的效率,事务提交过程中,InnoDB 会缓存一些 undo 段。只要同时满足两个条件,insert undo 段或 update undo 段就能被缓存。1. 关于缓存 undo 段为了提升分...【详细内容】
2024-03-27  爱可生开源社区  微信公众号  Tags:MySQL   点击:(18)  评论:(0)  加入收藏
MySQL:BUG导致DDL语句无谓的索引重建
对于5.7.23之前的版本在评估类似DDL操作的时候需要谨慎,可能评估为瞬间操作,但是实际上线的时候跑了很久,这个就容易导致超过维护窗口,甚至更大的故障。一、问题模拟使用5.7.22...【详细内容】
2024-03-26  MySQL学习  微信公众号  Tags:MySQL   点击:(14)  评论:(0)  加入收藏
从 MySQL 到 ByteHouse,抖音精准推荐存储架构重构解读
ByteHouse是一款OLAP引擎,具备查询效率高的特点,在硬件需求上相对较低,且具有良好的水平扩展性,如果数据量进一步增长,可以通过增加服务器数量来提升处理能力。本文将从兴趣圈层...【详细内容】
2024-03-22  字节跳动技术团队    Tags:ByteHouse   点击:(29)  评论:(0)  加入收藏
MySQL自增主键一定是连续的吗?
测试环境:MySQL版本:8.0数据库表:T (主键id,唯一索引c,普通字段d)如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不...【详细内容】
2024-03-10    dbaplus社群  Tags:MySQL   点击:(15)  评论:(0)  加入收藏
准线上事故之MySQL优化器索引选错
1 背景最近组里来了许多新的小伙伴,大家在一起聊聊技术,有小兄弟提到了MySQL的优化器的内部策略,想起了之前在公司出现的一个线上问题,今天借着这个机会,在这里分享下过程和结论...【详细内容】
2024-03-07  转转技术  微信公众号  Tags:MySQL   点击:(33)  评论:(0)  加入收藏
MySQL数据恢复,你会吗?
今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。主要...【详细内容】
2024-02-22  数据库干货铺  微信公众号  Tags:MySQL   点击:(54)  评论:(0)  加入收藏
如何在MySQL中实现数据的版本管理和回滚操作?
实现数据的版本管理和回滚操作在MySQL中可以通过以下几种方式实现,包括使用事务、备份恢复、日志和版本控制工具等。下面将详细介绍这些方法。1.使用事务:MySQL支持事务操作,可...【详细内容】
2024-02-20  编程技术汇    Tags:MySQL   点击:(56)  评论:(0)  加入收藏
MySQL数据库如何生成分组排序的序号
经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。...【详细内容】
2024-01-30  数据库干货铺  微信公众号  Tags:MySQL   点击:(56)  评论:(0)  加入收藏
mysql索引失效的场景
MySQL中索引失效是指数据库查询时无法有效利用索引,这可能导致查询性能显著下降。以下是一些常见的MySQL索引失效的场景:1.使用非前导列进行查询: 假设有一个复合索引 (A, B)。...【详细内容】
2024-01-15  小王爱编程  今日头条  Tags:mysql索引   点击:(88)  评论:(0)  加入收藏
站内最新
站内热门
站内头条