本节掌握内容:

  • MySQL的介绍安装、启动

  • windows上制作服务

  • MySQL破解密码

  • MySQL中统一字符编码

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • Mysql是开源的,所以你不需要支付额外的费用。

  • Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

  • MySQL使用标准的SQL数据语言形式。

  • Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

  • Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。

  • MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。

  • Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

由于其社区版的性能卓越,搭配Apache和PHP以及python 可组成良好的开发环境。

应用环境

与其他的大型数据库例如 OracleDB2SQL Server等相比,MySQL [1]  自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。

Linux作为操作系统Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。

mysql是什么?

总结:mysql就是一个基于socket编写的C/S架构的软件

数据库管理软件分类

分两大类
  关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
  非关系型:mongodb,redis,memcache 总结两句话:
关系型数据库需要有表结构
非关系型数据库是key-value存储的,没有表结构

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现

  • 2.每行为各种记录名称

  • 3.每列为记录名称所对应的数据域

  • 4.许多的行和列组成一张表单

  • 5.若干的表单组成database

RDBMS 术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库: 数据库是一些关联表的集合。.

  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。

  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。

  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

  • 外键:外键用于关联两个表。

  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

mysql的下载安装

想要使用MySQL来存储并保存数据,则需要做几件事情:

  a. 安装MySQL服务端
  b. 安装MySQL客户端
  b. 【客户端】连接【服务端】
  c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)

下载地址:

window版本

1、官网去下载

2、针对操作系统的不同下载不同的版本

3.解压

如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.6.40-winx64

4.添加环境变量 

5.初始化

mysqld --initialize-insecure

 6.启动mysql服务

mysqld #启动MySQL服务

7.启动mysql客户端并连接mysql服务端(新开一个cmd窗口)

mysql -u root -p # 连接MySQL服务器

上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将MySQL服务制作成windows服务

注意:--install前,必须用mysql启动命令的绝对路径
# 制作MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.6.40-winx64\bin\mysqld" --install # 移除MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.6.40-winx64\bin\mysqld" --remove 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务
net start mysql # 关闭MySQL服务
net stop mysql

windows下登录设置密码

打开终端,输入mysql

输入mysql提供的函数:select user(); # 查看当前登录的账号

当前登录的默认账号为ODBC@localhost

如果想切到root账号登录

执行命令:

mysql -uroot -p

再查看当前用户:

select user();

管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登录了管理员账号,是非常危险的一件事情,所以要为管理员账号设置密码

设置管理员root账号密码为123

C:\Users\mjj>mysqladmin -uroot -p password ""  #设置初始密码 由于原密码为空,因此-p可以不用 Mysql版本的不同,可能执行这句指令不起作用,请使用update mysql.user set authentication_string =password('') where User='root'; 

ps:⚠️不用管它。翻译为:在命令行界面使用密码不安全,暴露在终端当中。

然后再登录账号,不输入密码则会出现如下结果:

再次执行如下操作:

再查看一下当前登录的账号:

如果想将原始密码123,设置新密码为456

C:\Users\mjj>mysqladmin -uroot -p"" password ""  #修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码

依次执行如下操作:

mysql -uroot -p456

select user();

密码忘记——破解密码

跳过授权方式,直接登录!!

0.以管理员身份打开cmd

2.停掉mysql服务端

C:\WINDOWS\system32>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

3.执行如下命令跳过授权表

#跳过授权表
C:\WINDOWS\system32>mysqld --skip-grant-tables
2018-06-09 17:12:38 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
2018-06-09 17:12:38 0 [Note] mysqld (mysqld 5.6.40) starting as process 6052 ...4.

4.再次查看

5. 现在可以任意的更改密码,执行如下命令

 update mysql.user set authentication_string =password('') where User='root'; 

 

6.刷新权限,执行命令

flush privileges;

7.退出mysql。执行命令:exit,

8.让用户去加载权限,以管理员身份进入cmd,查看当前mysql进程

tasklist |findstr mysql  #查看当前mysql的进程

9.杀死当前的进程,执行如下命令

taskkill /F /PID 6052  # 杀死当前的进程pid

10.再次执行如下操作,还原

统一字符编码

进入mysql客户端,执行\s

为了统一字符编码,请执行如下操作:

(1)my.ini文件是mysql的配置文件,

在C:\mysql-5.6.40-winx64文件下创建my.ini文件

(2)将如下代码拷贝保存。

[mysqld]
# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
basedir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# mysql端口
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

(3)以管理员身份重启服务,执行如下命令

C:\Windows\system32>net stop MySQL
MySQL 服务正在停止..
MySQL 服务已成功停止。 C:\Windows\system32>net start MySQL
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

(4)在cmd中输入mysql进入mysql环境,执行\s,显示如下信息,表示成功

 

最新文章

  1. Icinga使用总结
  2. web初学之JavaBean
  3. 增强for循环(forearch)
  4. PHP之:PHP编程效率的20个要点
  5. js 正则表达式提取内容
  6. SeleniumIDE初级入门
  7. Stackoverflow架构
  8. java 线程同步 原理 sleep和wait区别
  9. C#判断字符串为空
  10. Python基础类型
  11. 服务器重启后Oracle监听服务没有自动启动的解决方案
  12. 心急的C小加(两种解法)
  13. /proc/mtd 各参数的含义 -- linux内核
  14. java中io对文件操作的简单介绍
  15. node.js的安装的配置
  16. day46 html
  17. Nginx---应用场景小结
  18. R 分组计算描述性统计量
  19. BASIC-20_蓝桥杯_数的读法
  20. ubuntu python opencv3 cv2.cv2 has no attribute 'face' 'cv2.face' has no attribute 'createEigenFaceRecognizer'

热门文章

  1. 【洛谷P1463】反素数
  2. word公式的使用
  3. NOIP 普及组 2014 比例简化
  4. location的三种连接方式和区别
  5. ELK 5.6.8 安装部署
  6. maven的pom.xml文件标签含义
  7. 网络编程基础【day09】:解决socket粘包之大数据(七)
  8. 多目标遗传算法 ------ NSGA-II (部分源码解析)目标函数 problemdef.c
  9. 2、JDBC-CURD
  10. HDU - 3980 Paint Chain(SG函数)