前言
这个专栏也可以认为是学习笔记,由于之前的专栏学习的是网络上的培训机构教程,学习完成之后发现虽然讲到一些有一些深入的东西,但是讲的都不是特别深,所以从这一节开始将会从零开始来全盘了解MYSQL,这里找了一本书《从根上理解Mysql》,个人也十分推荐读者去看看这边书,不仅有新特性对接讲解,也有很多的干货,同时讲的也十分好,作为支持个人后面也买了一本实体书(虽然基本都是拿pdf看的)。
思维导图(持续更新)
图片地址:p3-juejin.byteimg.com/tos-cn-i-k3…
参考资料:
- 英文mysql5.7官方文档:dev.mysql.com/doc/refman/…
- 中文对应翻译网站(机翻):www.docs4dev.com/docs/zh/mys…
概述
- 认识mysql的客户端和服务端是怎么一回事
- 了解安装mysql的注意事项,以及回顾mysql个人
- 简要介绍关于mysql启动的常见四个命令以及具体的作用
- mysqld
- mysqld_safe
- mysql.server
- mysqld_multi
认识客户端和服务端
由于是Mysql的专栏,这里就不牵扯什么TCP/IP,什么网络传输协议了,总之我们只需要了解mysql是分为客户端和服务端的,通常我们访问页面或者浏览数据就是一次数据库的访问过程(当然现在多数东西都静态化了),所以连接的这一方被称为客户端而接受请求的这一方面被称为服务端.
mysql的基本任务
通常我们使用MYSQL基本都是干这些事情:
- 连接数据库。
- 查询数据库的数据,客户端发送请求给服务端,服务端根据命令找到数据回送给客户端。
- 和数据库断开连接。
mysql实例
说完了上面的废话之后,我们来说下mysql实例,实例也在操作系统的层面叫做进程,而进程可以看做是处理器,内存,IO设备的抽象,我们不需要知道这个进程底层是如何传输数据存储数据的,我们只需要了解他需要一个端口,并且每一个实例都有一个 进程ID的东西,在数据库实例运行的时候系统会分配一个进程ID给它并且保证唯一,而每一个进程都有自己的名字,这个名称是安装的时候由程序员自己设置的,但是如果没有分配则会使用MYSQL自己默认设置的名称。
我们启动的 MySQL 服务器进程的默认名称为 mysqld , 而我们常用的 MySQL 客户端进程的默认名称为 mysql 。
从这个名称我们也可以推测出为什么我们启动一个服务通常会使用Mysqld,而我们连接数据库通常使用mysql。
- 每一个文件就是对于IO设备的抽象
- 虚拟内存是对内存和IO设备的抽象
- 进程:则是对处理器,虚拟内存和IO设备的抽象
安装Mysql的注意事项
安装Mysql十分简单但是实际上如果全手动安装细节还是比较多的,通常情况下我们自己使用直接用EXE程序或者直接使用BIN包等,但很多时候对于Linux的软件很多人都会推荐使用 源码安装,源码安装的好处不仅仅是缩小体积,经过不少的实验证明源码的安装方式效率会有所提升,所以正式环境下 尽可能使用源码安装,最后需要注意的一点是:Linux下使用RPM包会有单独的服务器和客户端RPM包,需要分别安装。
安装目录位置的区别
下面是具体的Mysql安装目录,当然下面这里只做参考,个人mac电脑使用的是brew install mysql
加上m1的的芯片安装的,适配性未知,所以为了保证笔记的可靠,这里用回了windows系统来进行实际测试和演练,下面是不同的操作系统在mysql的安装目录存储位置存在细微的不同,但是一定要十分清楚mysql真实的安装位置,这对于自己捣鼓各种命令以及设置参数很重要。
macOS 操作系统上的安装目录: /usr/local/mysql/ Windows 操作系统上的安装目录: C:\Program Files\MySQL\MySQL Server 5.7
Mysql安装
windows安装过程
安装过程就不演示了,网上的教程一抓一大把,为了稳妥起见这里个人使用的mysql版本是5.7的版本,同时使用了默认exe程序安装,如果你使用了mysql-installxx.exe安装,有的时候会出现下面的命令:
'mysql' 不是内部或外部命令,也不是可运行的程序
看到这个提示之后,第一反应是进入power shell的管理员模式:
PS C:\Windows\system32> mysql -uroot -p mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。 所在位置 行:1 字符: 1 + mysql -uroot -p + ~~~~~ + CategoryInfo : ObjectNotFound: (mysql:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
发现还是报错,然后我跑去服务看了下mysql是否有启动,发现mysql又是启动的,这里有点奇怪
然后这里找了下网络上的解决办法,其实加个环境变量就行了,然后使用power shell直接安装即可,最后我们照常输入命令就可以发现mysql正常安装完毕了:
PS C:\Windows\system32> mysql -uroot -pxxxxxx mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.35-log MySQL Community Server (GPL) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
关于绝对路径和相对路径启动问题:
绝对路径:如果你的系统环境变量里面访问不到你的应用程序命令,这时候就需要进入到相关的目录执行命令,比如上面我没有配置环境变量就需要进入到
C:\Program Files\MySQL\MySQL Server 5.7\bin
目录下进行操作,也可以正常使用mysql,但是每次这样弄很麻烦,所以基本是个正常人都会使用环境变量,如果你不知道环境变量是什么,额。。。。请自行百度相对路径:配置完环境变量之后,我们敲命令会根据系统环境变量配置的 先后顺序找到我们的命令并且执行,但是这点在mysql有点特别,后续会讲到如果多个系统参数配置会默认使用 最后读到的配置参数为准。
macos安装过程
Mac本子个人也是24分期才敢碰的神物,我相信用的人也不多,所以这里直接放个帖子:
Linux安装过程
由于个人使用云服务器搭建mysql比较多,这里提供了一个阿里云rpm包的安装方式,版本是centeros7,centeros6同样可以使用,不过需要修改部分命令。