欢迎第 位访客

day 7-11 初识MySQL数据库及安装密码设置破解

一. 什么是数据库 

  之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上。

如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题

但需要考虑的问题是:程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,垂直扩展是有极限的。于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。

需要注意的是,虽然我们将程序的各个组件分布到各台机器,但各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。

于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件,即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。

 

为了远程访问并处理这台共享机器上的文件,我们必须为我们的程序额外写一段代码,完成如下功能:

1 #1.远程连接
2 #2.打开文件
3 #3.读写(加锁)
4 #4.关闭文件

  我们写任何程序都需要有这段代码,于是我们提取这段代码,写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

二. 什么是数据

  数据:描述事务的符号记录,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机

在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:

1  Nick male 20 豫州  计算机系 

  单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思:

id   name    sex     age   adderess   major   #字段

1    Nick   male     20     豫州    计算机系  #记录

  用这样的一条记录来展示一个人的信息,就一目了然.

总结:

  数据库,顾名思义就是存放数据的仓库,只不过这个仓库是在计算机存储设备上。

  数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享.

数据库管理系统(DataBase Management System 简称DBMS)

 

  在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键

  这就用到了一个系统软件---数据库管理系统

  如MySQL、Oracle、SQLite、Access、MS SQL Server

  mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
  oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
  sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

  数据库说白了就是文件夹
  数据库管理系统就是一个软件
  数据库服务器:就是对外专门提供数据的一个机器

♥数据库服务器,数据库管理系统,表与记录的关系(重点理解)

  表:student,scholl,class_list(即文件)

  数据库:lzsh_info(即文件夹)

  数据库管理系统:如mysql(是一个软件)

  数据库服务器:一台计算机(对内存要求比较高)

总结:

    数据库服务器---运行--->数据库管理软件

    数据库管理软件--->管理--->数据库

    数据库---组织--->表,即文件夹---组织--->文件

    表---存放--->多条记录,即文件---存放--->多行内容

 四. mysql安装介绍

  MySQL是一个关系型数据库管理系统,MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

mysql是什么?

mysql就是一个socekt服务端
客户端软件
  mysql自带
  python模块

其他类型的数据库?

sqllite,db2,oracle,access,sql server,MySQL
分两大类:
  关系型:sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
  非关系型:mongodb,redis,memcache

四-1. windows下安装MySQL步骤:  

  基于windows7 x64位系统

  1.下载mysql数据(本例mysql-5.6.40-winx64),官方下载地址: https://dev.mysql.com/downloads/mysql/5.6.html#downloads

  2.把下载的zip包解压到相应的磁盘目录下,例如我解压到D盘根目录下,并改名为mysql5640

  3.进入D盘,打开mysql5640下面的bin目录,复制一下目录路径

  4.在电脑桌面,找到计算机,右键单击--属性--更改设置--高级--环境变量--系统变量里有个Path,选中Path,点编辑,把光标移到最后,输入一个;(冒号),然后把刚刚复制的目录地址粘贴进去,确定即可.

  5打开命令提示符(要使用管理员权限).切换目录到D:\mysql5640\bin.然后输入 mysqld -install 一般都会安装成功.如果不成功,请检查是否切换到mysql下的bin目录里(如果不切换到bin目录下,MySQL服务可能提示 找不到启动文件.)

  6.现在MySQL已经是系统服务了.windows+r,输入services.msc,就能看到一个MySQL的服务,点击启动,就可以了.也可以在命令提示符里输入 net start MySQL来启动.

注意:如果报错 3534,则需要初始化  mysqld --initialize

五. 设置和破解MySQL登录密码

  默认情况下,mysql中root是没有密码的,首先我们要先设置一个密码

 

 

use mysql;
update user set password=PASSWORD("密码") where user="root";

flush privileges;

 

设置远程登录:

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "密码";

 

 

 

 

     修改root密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

#windows下在命令提示符里,linux 在终端里输入
mysqladmin -uroot password "123"
# 更改密码
mysqladmin -uroot -p"123" password "456"

# 以root用户登录.
#msyql -uroot -p"234" 两种登录方式,推荐下面的
msyql -uroot -p

 

  破解MySQL登录密码:

  

#1.先停止MySQL数据库
net stop MySQL
#2. 打开一个命令提示符输入:
mysqld --skip-grant-tables;   #跳过mysql的启动授权表
#3.再打开一个命令提示符
 update mysql.user set authentication_string=password("") where user="root and
host="localhost";        #把root密码设置为空
#4.打开新的命令提示符,输入
tasklist |findstr mysqld #mysqld.exe                    7848 Console                    1    455,620 K

taskkill /F /PID 7848  # 终止msyql

#5. 启动MySQL
net start MySQL
#6. 再次登录就需要密码了
mysql -uroot -p

mysql服务指定配置文件

  修改统一字符编码,在mysql安装目录下,新建一个my.ini的文件.把下面的内容复制进去.

  

 1 #1. 修改配置文件
 2 [mysqld]
 3 default-character-set=utf8 
 4 [client]
 5 default-character-set=utf8 
 6 [mysql]
 7 default-character-set=utf8
 8 
 9 #mysql5.5以上:修改方式有所改动
10 [mysqld]
11 character-set-server=utf8
12 collation-server=utf8_general_ci
13 [client]
14 default-character-set=utf8
15 [mysql]
16 default-character-set=utf8

 

posted @ 2018-07-13 12:00  大橡皮  阅读(203)  评论(0编辑  收藏  举报