MySQL学习-预备知识
开始今日份整理
1. 数据库介绍
1.1 数据库定义
数据库是一个由一批分明别类的数据构成的有序集合,这个集合通常被保存为一个或多彼此相关的文件,我们可以理解为,数据库就是一种特殊的文件,其中存储着我们需要的数据。
使用数据库的好处
- 持久化存储
- 读写速度极高
- 保证数据的有效性
- 对程序的支持性非常好,容易扩展
1.2 数据库类型
数据库主要分为关系型数据库以及非关系型数据库。
1.2.1 关系型数据库(RDBMS)
RDBMS既关系型数据库管理系统(Relational Database Management System)
主要的软件:MySQL 、Oracle、 Sql Server
定义:数据库里面的数据全部存在数据表这种弄,而这些表在存储的过程中,各自之间有内在的联系,因为这种联系,我们称这样的数据库叫”关系型数据库”。
优点:
- 容易理解,二维表的结构
- 使用方便,使用SQL语言使得操作关系型的数据库非常方便,便于复杂的查询
- 支持事物等复杂的数据操作功能
1.2.2 非关系型数据库(NoSQL)
NoSQL:不仅仅是是SQL
主要软件:MongoDB、Redis
优点:
- 数据之间无联系,容易扩展
- 结构简单,具有非常高的读写性能,在大数据量下,同样表现优秀
- 无需事先建立字段,随时可以存储自定义的数据格式
1.3 关系型数据库核心元素
- 数据行(记录)
- 数据列(字段)
- 数据表(数据行的集合)----自定义为文件夹下的文件
- 数据库(数据表的集合)----自定义为电脑中的文件夹
例:一个学生表(表,字段,列,行)
2. MySQL的安装以及设定
2.1 MySQL的基本介绍
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般网站软件的开发都选择 MySQL 作为网站数据库。MySQL是一种客户端/服务器端(C/S)的软件,我们要学会如何如何安装服务器端的MySQL,还需要学会如何利用客户端工具操作MySQL数据,常用的客户端工具有: 命令行、pycharm-database、Navicat等
下载:https://dev.mysql.com/downloads/windows
2.2 MySQL的设定
2.2.1 windows平台下的密码破解
方式一
#1 关闭mysql
#2 在cmd中执行:mysqld --skip-grant-tables
#3 在cmd中执行:mysql
#4 执行如下sql:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges;
#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql
方式二
#1. 关闭mysql,可以用tskill mysqld将其杀死
#2. 在解压目录下,新建mysql配置文件my.ini
#3. my.ini内容,指定
[mysqld]
skip-grant-tables
#4.启动mysqld
#5.在cmd里直接输入mysql登录,然后操作
update mysql.user set authentication_string=password('') where user='root and host='localhost';
flush privileges;
#6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
希望自己永远不要用到这俩种方式。。。。
2.2.2 linux平台下的密码破解
方法一:删除授权库mysql,重新初始化
[root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授权信息全部丢失!!! [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql
方法二:启动时,跳过授权库
[root@egon ~]# vim /etc/my.cnf #mysql主配置文件 [mysqld] skip-grant-table [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost"; MariaDB [(none)]> flush privileges; MariaDB [(none)]> \q [root@egon ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启 [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql -u root -p123 #以新密码登录
2.2.3 统一字符编码
强调:配置文件中的注释可以有中文,但是配置项中不能出现中文
#1. 修改配置文件
[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
#mysql5.5以上:修改方式有所改动
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
#2. 重启服务
#3. 查看修改结果:
\s
show variables like '%char%'
在sql中统一字符编码还是有必要的!!!
ok