MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。
目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。
MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载 MySQL 数据库,而不必支付任何费用。
数据保存在内存
数据保存在文件
数据保存在数据库
结构化查询语言(StructuredQueryLanguage)简称SQL,是一种数据库查询语言。
作用:用于存取数据、查询、更新和管理关系数据库系统。
第一范式:每个列都不可以再拆分。
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。
在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。
MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由
mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。下面分别介绍一下这些表的结构和内容:
user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
db权限表:记录各个帐号在各个数据库上的操作权限。
table_priv权限表:记录数据表级的操作权限。
columns_priv权限表:记录数据列级的操作权限。
host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。
归根结底,动态网站都是对数据进行操作,我们平时浏览网页时,会发现网页的内容会经常变化,而页面的主体结构框架没变,新闻就是一个典型。这是因为我们将新闻存储在了数据库中,用户在浏览时,程序就会根据用户所请求的新闻编号,将对应的新闻从数据库中读取出来,然后再以特定的格式响应给用户。
Web 系统的开发基本上是离不开数据库的,因为任何东西都要存放在数据库中。所谓的动态网站就是基于数据库开发的系统,最重要的就是数据管理,或者说我们在开发时都是在围绕数据库在写程序。所以作为一个 Web 程序员,只有先掌握一门数据库,才可能去进行软件开发。
下图展示了项目中一个模块的开发流程:将网站的内容存储在 MySQL 数据库中;然后使用 PHP 通过 SQL 查询获取这些内容并以 HTML 格式输出到浏览器中显示。或者将用户在表单中输出的数据,通过在 PHP 程序中执行 SQL 查询,将数据保存在 MySQL 数据库中。也可以在 PHP 脚本中接受用户在网页上的其他相关操作,再通过 SQL 查询对数据库中存储的网站内容进行管理。
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 作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件,因此使用这种方式不用花一分钱(除开人工成本外)就可以建立起一个稳定、免费的网站系统。
官网:点我进入
官网下载Mysql8.0.27:点我进入
官网下载Mysql5.7.36: 点我进入
根据你系统的版本选择下载对应的Zip文件,建议使用压缩版的,不推荐使用安装版
该文件在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
保存即可!
注意:一定一定要以管理员的身份运行,否则在安装过程中会出现因为管理权限不够而导致的Install/Remove of the Service Denied!(安装/卸载服务被拒绝),这一点非常重要!
mysqld -install
mysqld --initialize
net start mysql
net stop mysql
skip-grant-tables
,保存即可!net start mysql
mysql -u root -p
,敲击回车后若出现以下信息,证明登录成功!update user set authentication_string=password("xxxxxx") where user="root";
xxxxxx是你设置的新密码,敲击回车后若出现以下信息,证明修改成功!skip-grant-tables
这一行,保存关闭。可以设置开机手动启动Mysql服务,这样就不会开机自启了。
Cmd输入:services.msc
找到MYSQL服务改为手动即可!!!
开机的时候Cmd输入:net start mysql
就可启动mysql
关闭输入:net stop mysql