一、 数据库概述
1、 数据库
什么是数据库:数据库,简而言之可视为电子化的文件柜—存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
所谓“数据库”系以一定方式储存在一起,能予多个用户共享、具有尽可能小的冗余度,应与应用程序彼此独立的数据集合
数据库是存储数据的地方
解决了几大问题
1, 直接操作硬盘上的文件效率低
2, 通过操作文件来读写数据很麻烦
3, 我们自己的电脑上写的程序和我们自己电脑上存储的数据都在这一台电脑上了,想和别人共享一个数据或者一个文档也是比较麻烦的,并且如果和别人共享,那么可能造成自己电脑的安全性变低了,但是公司内部的项目可能就会使用一些共同数据,这样共享起来就很麻烦
4, 项目项目和数据如果都在一个电脑上,如果电脑崩了,数据就很麻烦,稳定性和安全性都不够,我们要把数据和项目分开管理
数据库管理系统:是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类
2、数据库分类
两大类:关系型数据库,和非关系型数据库
2.1关系型数据库
常用的关系型数据库:
Oracle 数据库、mariaDB数据库、SQL server、Access数据库、其他不常用关系型数据库
2.2非关系型数据库
Nosql非关系型数据库小结:
1, NOSQL不是否定关系数据库,而是作为关系数据库的一个重要的补充
2, NOSQL为了高性能、高并发而生,忽略影响高性能,高并发的功能
3, NOSQL典型产品memcached(纯内存),redis(持久化缓存),mongodb(文档的数据库
)
非关系型数据库分为4种:
(1) 键值:存储数据库
(2) 列存储数据库
(3) 面向文档数据库
(4) 图形数据库
常见的非关系型数据库
(1) mecached (2)redis (3)mongDB (4)Cassandra (5)其他不常用非关系型数据库
root用户密码设置及忘记密码的解决方法
方法1:用SET PASSWORD命令
首先登录MySQL,使用mysql自带的那个客户端连接上mysql。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for
root@localhost = password('123');
方法2:用mysqladmin (因为我们将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,所以可以直接使用这个mysqladmin功能,使用它来修改密码)
关于mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能,虽然mysqladmin的很多功能通过使用MySQL自带的mysql客户端可以搞定,但是有时候使用mysqladmin操作会比较简单。
格式:mysqladmin -u用户名 -p旧密码
password 新密码
例子:mysqladmin -uroot -p123456
password 123
方法3:用UPDATE直接编辑那个自动的mysql库中的user表
首先登录MySQL,连接上mysql服务端。
mysql> use mysql; use
mysql的意思是切换到mysql这个库,这个库是所有的用户表和权限相关的表都在这个库里面,我们进入到这个库才能修改这个库里面的表。
mysql> update user set
password=password('123') where user='root' and host='localhost'; 其中password=password('123') 前面的password是变量,后面的password是mysql提供的给密码加密用的,我们最好不要明文的存密码,对吧,其中user是一个表,存着所有的mysql用户的信息。
mysql> flush privileges;
刷新权限,让其生效,否则不生效,修改不成功。
在忘记root密码的时候,可以这样(注意:root密码最好不要忘记,找地方记录下来,不然如果是工作中你们使用的数据库(不管是测试的还是线上的,都是比较麻烦的事情,数据库轻易不会让你重启的,不过作为一个开发来讲,你应该是无法用root用户的~~~))
#在mysql的解压目录下,新建my.ini,然后配置
#1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
[mysqld]
character_set_server=utf8
collation-server=utf8_general_ci
#就是一个校对规则,一般默认都是这个,如果不是就改成这个就可以了,所以直接写上就行了,这个规则后面我们会讲的~~~
#2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效
[client]
default-character-set=utf8
#3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
[mysql]
user=root
password=666
default-character-set=utf8
#如果没有[mysql],则用户在使用mysql系统自带的mysql客户端来执行mysql命令时的配置以[client]为准
重启mysql服务,让配置文件生效:
C:WINDOWSsystem32>net stop
mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。
C:WINDOWSsystem32>net start
mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
然后连接进入mysql,再次查看编码:
C:Userschao>mysql -uroot -p
Enter password: ***
mysql> show variables like
"%char%";
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8
|
| character_set_database | utf8 |
| character_set_filesystem |
binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir |
F:jjmysql-5.6.42-winx64sharecharsets |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)