数据库Mysql——基础介绍和安装

MySQL 是什么

MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。

MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。

目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。

MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载 MySQL 数据库,而不必支付任何费用。

为什么要使用数据库

数据保存在内存

  • 优点:存取速度快
  • 缺点:数据不能永久保存

数据保存在文件

  • 优点:数据永久保存
  • 缺点:1.速度比内存操作慢,频繁的IO操作。
       2.查询数据不方便

数据保存在数据库

  1. 数据永久保存
  2. 使用SQL语句,查询方便效率高。
  3. 管理数据方便

什么是SQL?

结构化查询语言(StructuredQueryLanguage)简称SQL,是一种数据库查询语言。
作用:用于存取数据、查询、更新和管理关系数据库系统。

数据库三大范式

第一范式:每个列都不可以再拆分。
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。
在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。

mysql有关权限的表都有哪几个

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由
mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。下面分别介绍一下这些表的结构和内容:
user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
db权限表:记录各个帐号在各个数据库上的操作权限。
table_priv权限表:记录数据表级的操作权限。
columns_priv权限表:记录数据列级的操作权限。
host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。

MySQL 特点

  1. 功能强大
    MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。
  2. 支持跨平台
    MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
  3. 运行速度快
    高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
  4. 支持面向对象
    PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。
  5. 安全性高
    灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。
  6. 成本低
    MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。
  7. 支持各种开发语言
    MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。
  8. 数据库存储容量大
    MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。
  9. 支持强大的内置函数
    PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。

数据库在 Web 开发中的重要作用

归根结底,动态网站都是对数据进行操作,我们平时浏览网页时,会发现网页的内容会经常变化,而页面的主体结构框架没变,新闻就是一个典型。这是因为我们将新闻存储在了数据库中,用户在浏览时,程序就会根据用户所请求的新闻编号,将对应的新闻从数据库中读取出来,然后再以特定的格式响应给用户。

Web 系统的开发基本上是离不开数据库的,因为任何东西都要存放在数据库中。所谓的动态网站就是基于数据库开发的系统,最重要的就是数据管理,或者说我们在开发时都是在围绕数据库在写程序。所以作为一个 Web 程序员,只有先掌握一门数据库,才可能去进行软件开发。

下图展示了项目中一个模块的开发流程:将网站的内容存储在 MySQL 数据库中;然后使用 PHP 通过 SQL 查询获取这些内容并以 HTML 格式输出到浏览器中显示。或者将用户在表单中输出的数据,通过在 PHP 程序中执行 SQL 查询,将数据保存在 MySQL 数据库中。也可以在 PHP 脚本中接受用户在网页上的其他相关操作,再通过 SQL 查询对数据库中存储的网站内容进行管理。
基于数据库的 Web 系统

PHP 几乎可以使用现有的所有的数据库,MySQL 与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,自有它的不足之处,比如规模小、功能有限(MySQL Cluster 的功能和效率都相对比较差)等,但这也丝毫没有减少它受欢迎的程度。 对于一般的个人使用者或者中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。

目前 Internet 上流行的网站构架方式分别是 LAMP(Linux + Apache + MySQL + PHP/Perl/Python)和 LNMP(Linux + Nginx + MySQL + PHP/Perl/Python),也就是使用 Linux 作为操作系统,Apache 和 Nginx 作为 Web 服务器,MySQL 作为数据库,PHP 作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件,因此使用这种方式不用花一分钱(除开人工成本外)就可以建立起一个稳定、免费的网站系统。

Mysql官网

官网:点我进入
官网下载Mysql8.0.27:点我进入
官网下载Mysql5.7.36: 点我进入

1.下载Mysql

根据你系统的版本选择下载对应的Zip文件,建议使用压缩版的,不推荐使用安装版
mysql

2.新建环境变量
  1. 点击新建,变量名为:MYSQL_HOME,添加你的mysql-5.7.36-winx64文件夹所在位置。
    例如:C:\Program Files\Mysql\mysql-5.7.36-winx64
  2. 编辑Path,复制;%MYSQL_HOME%\bin到原有值的后面
3.新建并配置my.ini文件

该文件在mysql-5.7.36-winx64文件夹所在位置新建my.ini
my.ini文件的内容为(需要手动自行修改一些路径):

[mysqld]
#端口号
port = 3306
#mysql-5.7.36-winx64的路径
#mysql目录
basedir=mysql-5.7.36-winx64的路径
#mysql-5.7.36-winx64的路径+\data
#mysql存放数据的目录
datadir=mysql-5.7.36-winx64的路径+\data
#最大连接数
max_connections=200
#编码
character-set-server=utf8
#默认使用INNODB引擎
default-storage-engine=INNODB

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysql]
#编码
default-character-set=utf8 

保存即可!

4.以管理员身份运行cmd

注意:一定一定要以管理员的身份运行,否则在安装过程中会出现因为管理权限不够而导致的Install/Remove of the Service Denied!(安装/卸载服务被拒绝),这一点非常重要!

  • 在cmd中进入到C:\Program Files\Mysql\mysql-5.7.36-winx64\bin目录下:
  • 输入安装命令:mysqld -install
    • 出现Service successfully installed,证明安装成功;
    • 如出现Install of the Service Denied,则说明没有以管理员权限来运行cmd;
  • 输入初始化命令:mysqld --initialize
  • 输入启动命令:net start mysql
  • mysql启动完成!!!
5.设置Mysql密码
  1. 在这里设置密码主要是解决:ERROR 1045 (28000): Access denied for user
    ‘root’@‘localhost’ (using password: NO)的问题
  2. 首先停止MySQL服务,输入命令行net stop mysql
  3. 先设置跳过密码:在C:\Program Files\Mysql\mysql-5.7.36-winx64目录下找到刚刚配置好的my.ini文件,在[mysqld]字段下任意一行添加skip-grant-tables,保存即可!
  4. 启动命令:net start mysql
  5. 输入登录命令:mysql -u root -p,敲击回车后若出现以下信息,证明登录成功!
    mysql登录成功!!!
  6. 输入命令行update user set authentication_string=password("xxxxxx") where user="root";xxxxxx是你设置的新密码,敲击回车后若出现以下信息,证明修改成功!
    修改成功
  7. 然后在刚刚的my.ini文件中删除skip-grant-tables这一行,保存关闭。

可以设置开机手动启动Mysql服务,这样就不会开机自启了。
Cmd输入:services.msc
手动启动mysql
找到MYSQL服务改为手动即可!!!

开机的时候Cmd输入:net start mysql就可启动mysql
关闭输入:net stop mysql

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值