安装MySQL
# 1. MySQL数据库介绍
从今天开始,我们将进入系列课程的 第四模块 的学习,这个模块就是给大家讲解MySQL数据库。
以前,在开发程序时,我们会把很多的数据和信息存储到某个文件夹中的文件中,例如:user.txt 、db.xlsx 等。
现在,有那么一个叫:数据库管理系统(DBMS,Database Management System)的软件,可以帮助我们实现对文件夹中的文件进行操作,而我们只要学习DBMS能识别的指令, 就能控制它去帮助我们实现的文件和文件夹的处理。例如:
数据库管理系统(DBMS)专注于帮助开发者解决数据存储的问题,这样开发者就可以把主要精力放在实现业务功能上了。
业内有很多的的数据库管理系统产品,例如:
MySQL,原来是sun公司,后来被甲骨文收购。现在互联网企业几乎都在使用。【免费 + 收费】
Oracle,甲骨文。收费,一般国企、事业单位居多。【收费】
Microsoft SQL Server,微软。【收费】
DB2,IBM。【免费 + 收费】
SQLite,D. Richard Hipp个人开发。【免费】
Access, 微软。【收费】
PostgreSQL,加州大学伯克利分校。【免费】
等众多..
由于各大公司都是使用MySQL,所以我们课程主要给大家讲解MySQL数据库。
在项目开发中想要基于MySQL来进行数据存储,大致应该怎么做呢?
本系列的MySQL模块会分为5部分来讲解:
MySQL入门,安装和快速应用Python实现数据库的操作。
必备SQL和授权,学习更多必备的指令让数据库实现更多业务场景。
SQL强化和实践,强化练习必备”指令“(项目开发写的最多)。
索引和函数以及存储过程,掌握常见性能提升手段以及那些应用不是很频繁却又需了解的知识点。
Python操作MySQL和应用,侧重点在于Python开发,让大家了解Python开发中必备的实战应用,例如:锁、事务、数据库连接池等。
# 2. 安装 & 配置 & 启动
MySQL现在的版本主要分为:
5.x 版本,现在互联网企业中的主流版本,包括:头条、美图、百度、腾讯等互联网公司主流的版本。
8.x 版本,新增了一些了窗口函数、持久化配置、隐藏索引等其他功能。
所以,我们课程会以常用大版本中最新的版本为例来讲解,即:5.7.31 (依然有很多企业在用5.6.x,但新项目基本上都是5.7.x了)。
# 2.1 win系统
# 第1步:下载安装
https://downloads.mysql.com/archives/community/ (opens new window)
# 第2步:解压至任意文件夹
建议解压至软件安装目录,例如:
# 第3步:创建配置文件
在MySQL的安装目录下创建 my.ini
的文件,作为MySQL的配置文件。
其实,MySQL的配置文件可以放在很多的目录,下图是配置文件的优先级:
强烈,建议大家还是把配置文件放在MySQL安装目录下,这样以后电脑上想要安装多个版本的MySQL时,配置文件可以相互独立不影响。
注意:如果你电脑的上述其他目录存在MySQL配置文件,建议删除,否则可能会影响MySQL的启动。
# 第4步:初始化
>>> "C:\Program Files\mysql-5.7.31-winx64\bin\mysqld.exe" --initialize-insecure
初始化命令在执行时,会自动读取配置文件并执行初始化,此过程主要会做两件事:
自动创建data目录,以后我们的数据都会存放在这个目录。
同时创建建必备一些的数据,例如默认账户 root (无密码),用于登录MySQL并通过指令操作MySQL。
在windowns安装过程中如果有报错 ( msvcr120.dll不存在 ),请下载并安装下面的两个补丁:
- vcredist:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=40784 (opens new window) (主要)
# 第5步:启动
启动MySQL常见的有两种方式:
- 临时启动
>>> "C:\Program Files\mysql-5.7.31-winx64\bin\mysqld.exe"
注意:此时程序会挂起,内部就是可以接收客户端发来的MySQL指令,关闭窗口或Ctrl+c 就可以停止运行。
这种启动方式每次开机或想要开启都需要手动执行一遍命令比较麻烦。
- 制作windows服务,基于windows服务管理。
>>>"C:\Program Files\mysql-5.7.31-winx64\bin\mysqld.exe" --install mysql57
创建好服务之后,可以通过命令 启动和关闭服务,例如:
>>> net start mysql57
>>> net stop mysql57
2
也可以在window的服务管理中点击按钮启动和关闭服务。例如:
以后不再想要使用window服务了,也可以将制作的这个MySQL服务删除。
>>>"C:\Program Files\mysql-5.7.31-winx64\bin\mysqld.exe" --remove mysql57
# 第6步:测试连接MySQL
安装并启动MySQL之后,就可以连接MySQL来测试是否已正确安装并启动成功。
以后在开发时,肯定是要用Python代码来连接MySQL并且进行数据操作(后面讲)。
在安装MySQL时,其实也自动安装了一个工具(客户端),让我们快速实现连接MySQL并发送指令。
注意:如果把bin目录加入环境变量,每次在运行命令时,就不用再重新输入绝对路径了。
上述过程如果操作完成之后,证明你的安装和启动过程就搞定了。
# 2.2 mac系统
mac系统和win不同,MySQL为他提供了非常方便的一站式安装程序,只要点击、next就可以安装、初始化完成。
# 第1步:安装和初始化
https://downloads.mysql.com/archives/community/ (opens new window)
这个基于dmg文件的安装过程,其实包含了:
安装,默认安装在了
/usr/local/mysql-5.7.31-macos10.14-x86_64/
目录。初始化,在安装目录下创建data目录用于存放数据; 初始化模块数据库以及账户相关等,例如: 账cd
# 第2步:创建配置文件
建议在MySQL安装目录下创建 etc/my.cnf
作为MySQL的配置文件。
MySQL的配置文件按照优先级,会在以下目录中寻找:
为了避免多个版本共存时,配置文件混乱的问题,建议大家还是把配置文件放在当前MySQL的安装目录下。
# 第3步:启动
在Mac系统中启动MySQL常见的有2种方式:
- 安装目录中自带
mysql.server
脚本(建议)
sudo /usr/local/mysql/support-files/mysql.server start
# 输入电脑密码
sudo mysql.server start
# 输入电脑密码
2
3
4
5
sudo /usr/local/mysql/support-files/mysql.server stop
为了避免每次执行命令都需要些路径,可以将路径 /usr/local/mysql/support-files
加入到环境变量中。
操作完成之后,再在终端执行下命令:source ~/.zprofile
让设置的环境变量立即生效。
注意:mac系统的版本如果比较老,会显示空白的 zprofile
文件,此就要去打开 bash_profile
文件。
这样设置好之后,以后就可以使用下面的命令去启动和关闭MySQL了。
sudo mysql.server start
sudo mysql.server stop
2
- 系统偏好设置(不推荐)
第一种mysql.server
脚本的形式,内部是使用 mysqld_safe
运行,可以守护我们的MySQL进程,如意外挂掉可自动重启。
# 第4步:测试连接MySQL
安装并启动MySQL之后,就可以连接MySQL来测试是否已正确安装并启动成功。
以后在开发时,肯定是要用Python代码来连接MySQL并且进行数据操作(后面讲)。
在安装MySQL时,其实也自动安装了一个工具(客户端),让我们快速实现连接MySQL并发送指令。
注意:/usr/local/mysql/bin
也可以加入到环境变量。
至此,在Mac系统中关于MySQL的安装和配置就完成了。
# 2.3 关于配置文件
上述的过程中,我们在配置文件中只添加了很少的配置。
其实,配置项有很多,而哪些配置项都有默认值,如果我们不配置,MySQL则自动使用默认值。
# 2.4 关于密码
# 1. 设置和修改root密码
在windows系统中模块默认 root 账户是没有密码的,如果想要为账户设定密码,可以在利用root账户登录成功之后,执行:
# 2. 忘记root密码
如果你忘记了MySQL账户的密码。
- 修改配置文件,在 [mysqld] 节点下添加
skip-grant-tables=1
[mysqld]
...
skip-grant-tables=1
...
2
3
4
重启MySQL,再次登录时,不需要密码直接可以进去了
windows重启
net stop mysql57
net start mysql57
2
- mac重启
sudo mysql.server restart
重启后,无序密码就可以进入。
>>> mysql -u root -p
- 进入数据库后执行修改密码命令
use mysql;
update user set authentication_string = password('新密码'),password_last_changed=now() where user='root';
2
- 退出并再次修改配置文件,删除 [mysqld] 节点下的
skip-grant-tables=1
[mysqld]
...
# skip-grant-tables=1
...
2
3
4
- 再次重启,以后就可以使用新密码登录了。
# 3. 数据库 管理
安装上数据库之后,就需要开始学习指令了,通过指令让MySQL去做出一些文件操作。
如果将数据库管理系统与之前的文件管理做类比的话:
接下来,我们先学习 数据库(文件夹)相关操作的指令。