Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权
来源:https://www.cnblogs.com/liubing8/p/11432534.html
目录
数据库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'@'%';
Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权的更多相关文章
- mysql数据库补充知识1 安装数据库破解数据库密码已经创建用户
一.安装MYSQL数据库 1.yum安装 #二进制rpm包安装 yum -y install mysql-server mysql 2.源码安装 1.解压tar包 cd /software tar ...
- Mysql查看登录用户以及修改密码和创建用户以及授权(转载)
本文转自(https://www.cnblogs.com/manzb/p/6491924.html) 1.mysql查看当前登录用户,当前数据库: select user(); select data ...
- 数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权
数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...
- (3.15)mysql基础深入——mysql默认数据库/系统数据库
(3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...
- MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权
一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...
- (3.16)mysql基础深入——mysql字符集
(3.16)mysql基础深入——mysql字符集 关键字:mysql字符集,mysql编码 目录 1.概念 2.常用的字符编码 3.查看mysql字符集 [3.1]查看服务器支持的字符集 [3.2] ...
- (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)
(3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...
- (3.11)mysql基础深入——mysql文件分类与配置文件管理
(3.11)mysql基础深入——mysql文件分类与管理 关键词:mysql配置文件,mysql参数文件,mysql中的my.cnf 目录:mysql数据库文件分类: [1]参数文件:my.cnf ...
- MySQL基础、MySQL安装和MariaDB安装
MySQL基础 目录 MySQL基础 关系型数据库介绍 数据结构模型 RDBMS专业名词 关系型数据库的常见组件 SQL语句 MySQL安装与配置 MySQL安装 MariaDB安装 关系型数据库介绍 ...
随机推荐
- String 的格式化
使用场景 用于生成redis等key-value 结构的key的格式化,方便管理 eg: String.format(RedisKeys.PURCHASE_ADD_BABY_LOCK,form.get ...
- centos7上安装memcached以及PHP安装memcached扩展(一)
安装memecached 第一步:安装libevent # tar zvxf libevent-2.1.8-stable.tar.gz # cd libevent-2.1.8-stable # ./c ...
- Mini Linux的制作过程
- 解决mysql不是内部或外部命令(win10)
1.原因:cmd当前所在路径为c盘下的system32,由于mysql安装位置不在该目录下,所以会报错. 2.解决方法:配置环境变量 step1:右击此电脑->属性 step2:选择高级系统设置 ...
- 前台页面id为空--驼峰命名映射
错误: 前台页面id为空,或其他数据映射问题(方案2) 原因: java的bean类属性和数据库字段命名不一致,查询的时候就不能把数据封装进bean类里, 在数据库字段命名规范中,通常使用下划线“_ ...
- redis概要学习
redis 概要学习 redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Re ...
- Java WebService学习笔记 - Axis(一)
WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...
- centos 6.5 上安装jdk
1.首先明确自己的电脑上32位还是64位,自己的电脑是32位 2.下载jdk进入到oracle公司的主页 把页面拖到最下面 点击上面这个就可以下载以前比较低的版本 这里选择 32位的源码包的方式,将源 ...
- 入门大数据---HBase Shell命令操作
学习方法 可以参考官方文档的简单示例来 点击查看 可以直接在控制台使用help命令查看 例如直接使用help命令: 从上图可以看到,表结构的操作,表数据的操作都展示了.接下来我们可以针对具体的命令使用 ...
- MongoDB入门四
MongoDB针对实时位置 db.CallRecordInfo.find().count()db.SendInfo.find().count()db.RiderReaTimePositon.find( ...