数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权
数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权
1. 数据库概述
相关概念
数据库:数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合
库:相当于文件夹
表:相当于文件
记录:表里边的内容
数据库分类
关系型:每个字段之间的关系紧密,通过任何一个字段都可以查到该组数据
非关系型:只能通过key,去获取value
数据库的优势
- 程序稳定性:相对来说,程序会更加稳定
- 数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
- 并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作
- 效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
2. 数据库管理系统/DBMS
DBMS/数据库管理系统 概述
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。
RDBMS/关系数据库管理系统
- 关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
mysql数据库
使用的是SQL语言,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
oracle数据库
oracle数据库相对于mysql数据库来说比较安全,主要应用范围:传统大企业、大公司、政府、金融、证券等
MariaDB数据库
是MySQL数据库的一个分支,为了防止甲骨文公司收购了MySQL之后闭源风险,MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM的存储引擎
SQL Server数据库
Microsoft SQL Server是微软公司开发的大型关系数据库系统。SQL Server的功能比较全面,效率高,可以作为中型企业或单位的数据库平台,SQL Server的缺点是只能在Windows系统下运行
Access数据库
Access是入门级小型桌面数据库,性能安全性都很一般,可供个人管理或小型企业使用
NoSQL/非关系型数据库管理系统
- NOSQL的本意是“Not Only SQL” 指的是非关系型数据库,NoSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
redis数据库
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
MongoDB数据库
MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系数据库的
memcached数据库
Memcaced是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的web应用
关系型数据库和非关系型数据库区别:
可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构
3. 结构化查询语言/SQL
SQL概述:
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
SQL的作用:
主要用于存取数据、查询数据、更新数据和管理关系数据库系统
SQL语言的3种类型:
DDL语句 数据库定义语言:
数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言:
插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
DCL语句 数据库控制语言:
例如控制用户的访问权限GRANT、REVOKE
不同数据库系统之间的SQL不能完全相互通用
4. mysql的配置文件
在mysql安装目录下创建一个my.ini(my.cnf)文件,写入下面的配置,然后重启服务端
配置的用户名和密码,就叫做user和password,不能是username什么的
配置文件中的注释可以有中文,但是配置项中不能出现中文
my.ini(windows)/my.cnf(linux)
[client]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
user = 'root'
password = '123'
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=E:\mysql-5.6.45-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-5.6.45-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
5. mysql基本指令
远程登录
mysql -h 127.0.0.1 -p 3306 -u root -p -- -h:mysql服务端ip
-- -p:mysql端口
-- -u:登录用户名
-- -p:登录用户名对应的密码
操作库/增删改查
-- 1.查看数据库
show databases;
-- 2.查看其中的一个库
show create database db1;
-- 3.创建数据库
create database db1;
-- 4.创建数据库并指定编码
create database db1 charset utf8;
-- 5.使用数据库
use db1;
-- 6.修改数据库编码
alter database db1 charset utf8;
-- 7.删除数据库
drop database db1;
-- 8.查看当前所在的库
select database();
操作表/增删改查
-- 1.创建表(字段名不能相同)
create table stu(id int,name char(16));
注:char(16)5.6版本以前是字节,5.6版本以后是字符
-- 2.查看当下库的所有表
show tables;
-- 3.查看刚刚创建的那一张表
show create table stu;
-- 4.查看一张表的基本信息
desc stu;
-- 5.修改表的数据类型
alter table class modify class_name char(16);
-- 6.修改表的字段名和数据类型
alter table class change class_name name char(18);
-- 7.删除表
drop table class; -- 建表后,再给id字段设置自增
alter table books modify id int auto_increment primary key not null;
操作记录/增删改查
-- 1.新增一条记录
insert into stu values(1,'张三'),(2,'李四');
insert into stu(id,name) values(1,'张三'),(2,'李四');
-- 2.查记录
select 字段名 from stu;(查询表中某个字段的记录)
select * from stu;
-- 3.条件查询
select * from stu where id = 1;
-- 4.修改记录
update stu set name = 'alisa' where id = 3;
-- 5.删除记录
delete from stu where name='张三';
delete from t1; -- 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
truncate table t1; -- 数据量大,删除速度比上一条快,且直接从零开始,
-- 6.将一个表的内容查出来放到另一个表中
insert into class2 select * from class;
-- 7.查当前的时间
select now(); -- 删除不存在的记录不会报错
6. 数据库密码相关
用户密码设置以及修改密码的三种方式
方法1: 用SET PASSWORD命令
-- 首先登录MySQL,使用mysql自带的那个客户端连接上mysql。
-- 格式:
mysql> set password for 用户名@localhost = password('新密码');
-- 例子:
mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
1.mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能
2.不用进入数据库,因为已经将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,所以可以直接使用这个mysqladmin功能,使用它来修改密码,不需要进入mysql里面去修改,但是这样操作不安全
-- 格式:
mysqladmin -u用户名 -p旧密码 password 新密码
-- 例子:
mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑那个自动的mysql库中的user表
-- 1. 首先登录MySQL,连接上mysql服务端
-- 2. 进入mysql库,这个库是所有的用户表和权限相关的表都在这个库里面
mysql> use mysql;
-- 3. 修改用户名对应的密码
mysql> update user set password=password('123') where user='root' and host='localhost';
-- 其中password=password('123') 前面的password是变量,后面的password是mysql提供的给密码加密用的
root密码忘记的处理方法
1 关闭正在运行的MySQL服务
net stop mysql -- mysql是添加的mysqld到系统服务时的服务名 2. 打开DOS窗口,转到mysql\bin目录。
1.d:(回车)
2.cd mysql-5.6.45-winx64(回车)
3.cd bin(回车) 3. 输入mysqld --skip-grant-tables 回车。
skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证,因为之所以mysql启动之后,客户端连接的时候需要登陆认证,输入密码什么的,是因为mysql服务端启动的时候,加载了自己内部的一些权限相关信息的授权表、权限认证表什么的,这样就要求客户端必须有认证,如果启动的时没有加载这些表和设置,那么我们客户端再进行登陆的时候,就不需要认证了 4 重新启动一个窗口,连接mysql服务端 5 修改mysql库里面的user表里面的root用户记录的密码:
password():mysql的内置函数
update user set password = password('123') where user='root'; 6. 刷新权限(必须步骤):flush privileges; 凡是涉及到密码修改或者权限修改,修改完之后全部要再执行一下这一句 7. 关掉mysqld服务端,指令:
tasklist|findstr mysqld
taskkill /F /PID 进程号 8. 正常启动服务端(net start mysql)
7. 创建用户和授权
对新用户的增删改
1.创建用户:
-- 指定ip:192.118.1.1的zhangsan用户登录
create user 'zhangsan'@'192.118.1.1' identified by '123'; -- 指定ip:192.118.1.开头的zhangsan用户登录
create user 'zhangsan'@'192.118.1.%' identified by '123'; -- 指定任何ip的zhangsan用户登录
create user 'zhangsan'@'%' identified by '123'; 2.删除用户
drop user '用户名'@'IP地址'; 3.修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址'; 4.修改密码
set password for '用户名'@'IP地址'=Password('新密码');
对当前用户授权管理
-- 查看权限
show grants for '用户'@'IP地址' -- 授权 zhangsan用户仅对db1.t1文件有查询、插入和更新的操作
grant select ,insert,update on db1.t1 to "zhangsan"@'%'; -- 表示有所有的权限,除了grant这个命令,这个命令是root才有的。zhangsan用户对db1下的t1文件有任意操作
grant all privileges on db1.t1 to "zhangsan"@'%';
-- zhangsan用户对db1数据库中的文件执行任何操作
grant all privileges on db1.* to "zhangsan"@'%';
-- zhangsan用户对所有数据库中文件有任何操作
grant all privileges on *.* to "zhangsan"@'%'; -- 取消权限 -- 取消zhangsan用户对db1的t1文件的任意操作
revoke all on db1.t1 from 'zhangsan'@"%"; -- 取消来自远程服务器的zhangsan用户对数据库db1的所有表的所有权限 revoke all on db1.* from 'zhangsan'@"%"; -- 取消来自远程服务器的zhangsan用户所有数据库的所有的表的权限
revoke all privileges on *.* from 'zhangsan'@'%';
数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权的更多相关文章
- Mysql查看登录用户以及修改密码和创建用户以及授权(转载)
本文转自(https://www.cnblogs.com/manzb/p/6491924.html) 1.mysql查看当前登录用户,当前数据库: select user(); select data ...
- Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权
来源:https://www.cnblogs.com/liubing8/p/11432534.html 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 ...
- MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权
一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...
- MySQL数据库~~~~~创建用户和授权、备份和还原
一 MySQL创建用户和授权 1.1 对新用户增删改 1.创建用户: # 指定ip:192.118.1.1的chao用户登录 create user 'chao'@'192.118.1.1' iden ...
- oracle 数据库创建用户并授权
oracle 数据库创建用户并授权 备注: userName 为用户名,123456 为密码 drop user userName cascade; create user userName iden ...
- mysql(单表查询,多表查询,MySQl创建用户和授权,可视化工具Navicat的使用)
单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT ...
- MySQL 创建用户 与 授权
例,需要给 121.52.215.100 连接添加一个用户 dee,密码是 123456,他只能对数据库 vshop 有 select 权限: CREATE USER '; GRANT SELECT ...
- 14-补充内容:MySQl创建用户和授权
[转]14-补充内容:MySQl创建用户和授权 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操 ...
- mysql系列六、mysql创建用户、授权、备份及恢复命令
一.创建用户和授权 下面的操作中,其中someusername为用户名,somepassword为密码,somedbname为数据库名 1.创建用户 create user 'someusername ...
随机推荐
- min_25筛入门
目录 1.什么是min_25筛 2.前置知识 2.1.数论函数 2.2.埃拉托色尼筛 2.3.欧拉筛 3.min_25筛 3.1.计算质数贡献 3.2.计算总贡献 3.3.实现 4.例题 4.1.[L ...
- 素数筛 : Eratosthenes 筛法, 线性筛法
这是两种简单的素数筛法, 好不容易理解了以后写篇博客加深下记忆 首先, 这两种算法用于解决的问题是 : 求小于n的所有素数 ( 个数 ) 比如 这道题 在不了解这两个素数筛算法的同学, 可能会这么写一 ...
- 为避免种族歧视,谷歌Chrome将不再使用“黑名单”等词
GitHub 15.2k Star 的Java工程师成神之路,不来了解一下吗! GitHub 15.2k Star 的Java工程师成神之路,不来了解一下吗! 近日,美国黑人乔治‧佛洛伊德(Georg ...
- 【JMeter_19】JMeter逻辑控制器__简单控制器<Simple Controller>
简单控制器<Simple Controller> 业务逻辑: 就像他的名字一样,简单,可以理解为一个文件夹,就是分组用的,没有其他特殊功能,但相比不添加简单控制器,区别在于简单控制器可以被 ...
- Centos7 composer安装时 Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/bin/composer self-update" to get the latest version.
emmm,其实就是想让你运行一下/usr/bin/composer self-update这个命令更新一下
- cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if remove_copy()//在复制过程中删除一些数据remove_copy_if() 删除性算法: ...
- java中的excel操作
导入jxl.jar包: 下载个jxl.jar包,然后这个包放在什么位置都行,在你的项目中导入这个包就可以. 具体做法: 项目上右键,点击“属性”, 类别那里选择”库“,点击"添加jar文 ...
- 在Docker中运行PostgreSQL + pgAdmin 4
拉取postgresql镜像:docker pull postgres 运行postgresql:docker run -d -p 5432:5432 --name postgresql -v pgd ...
- 设计模式系列之代理模式(Proxy Pattern)——对象的间接访问
说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...
- Docker(五)Docker镜像讲解
Docker镜像讲解 镜像概念 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件 Dock ...