使用免安装压缩包安装MySQL
OS:Windows 10家庭中文版 MySQL:mysql-5.7.20-winx64.zip
作者:Ben.Z
参考链接:
Installing MySQL on Microsoft Windows
Installing MySQL on Microsoft Windows Using a noinstall ZIP Archive
先说一下我安装MySQL的历史:
最开始是用Windows可执行文件安装,安装好后,使用MySQL通知器打开关闭服务即可;
后来,学会了安装免安装版(noinstall),下载压缩包后,百度搜索“如何安装免安装版MySQL”,再根据别人写的
中文资料安装好MySQL,之后使用NET命令启停服务或者在服务控制器里面启停设置服务;
这次也是免安装版,但不同的是,没有百度去找资料了,而是根据MySQL官网(英文)的安装步骤逐步安装的MySQL,最后,MySQL安装
成功了,并将MySQL服务器设置为随机启停(Starting MySQL as a Windows service)。
安装步骤如下:
-下载MySQL免安装版
一个zip文件,我下载的是mysql-5.7.20-winx64.zip;
-解压免安装版,并将解压后的文件夹放到自己指定的位置
解压后的文件夹即MySQL的主目录,更改文件夹名为mysql(各位随意),再放置到自己指定的位置——我的是D:\p
-打开mysql目录下的README,查找安装说明
查看README文件,可以找到 如何安装MySQL 的资料,再打开相应的安装指导(For installation instructions...)逐步安装MySQL;
-打开网页2.3.5,再按照里面的步骤安装MySQL免安装版,并最终将MySQL服务设置为Windows服务
从下图可以看出,MySQL官网给出了9个步骤,其中,2.3.5.2、2.3.5.4是关键,下面介绍安装过程中的重点步骤;
-2.3.5.2 Creating an Option File
本节介绍创建MySQL配置文件:MySQL启动时,根据此配置文件的内容设置MySQL服务器。
网页里面说了,MySQL启动时会在两个地方寻找配置文件:WINDOWS目录、MySQL安装目录。
其中,WINDOWS目录一般为“C:\WINDOWS”,在命令行中使用echo %WINDIR%可以找到,MySQL安装目录就是前面我们
解压得到的目录。
配置文件的名称为my.ini或者my.cnf,不过,my.ini的优先级高于my.cnf,都是文本文件。
关键!这两个放置配置文件的地方的两个名字的文件中的配置都会被读取出来用于配置MySQL,为了避免混乱,请把所有配
置写到一个文件中,并放到一个目录下。
我是将配置信息写到my.ini文件中,并放到MySQL安装目录中。
接下来,在Option File文件中输入内容。在本网页中,有两个配置项需要输入:basedir、datadir,basedir表示MySQL安装目
录,datadir表示MySQL数据库的数据存放目录。
注意,Windows的路径分隔符是【斜杠】,需要将其替换为【反斜杠】,或者每个斜杠用两个斜杠替换。
注意,数据目录需要手动创建,我是在MySQL安装目录下建立了data文件夹,空的。
问题:是否要创建Option File呢?不建立行不行?basedir或datadir是否可以不用设置呢?
我的配置文件如下:
更多的配置选项,请查看Server Configuration Defaults及其中的链接页面。
-Initializing the Data Directory
在配置文件中指定了数据文件夹的位置datadir,但是,新建的数据文件夹是空的,此时,需要对其进行初始化。
MySQL官网指导:2.9.1.1 Initializing the Data Directory Manually Using mysqld
注意,执行此操作需要Windows管理员权限。
使用管理员权限打开Windows命令行工具,进入MySQL安装目录;
在官方指导2.9.1.1中给出了两个命令:--initialization、--initialization-insecure,从字面意思可知,前一个安全、后一个不安全。
--initialization命令初始化后会给'root'@'localhost'账号创建一个随机密码,而--initialization-insecure命令则会给'root'@'localhost'账号创建
空密码,并且不会过期(原来我以前安装的MySQL都是insecure的啊!)。
我选择--initialization命令,执行方式及结果:
执行完成后,没有结果显示在命令行中。
但是,此时data目录下新建了不少文件夹和文件了。
刚刚说了,使用--initialization会给'root'@'localhost'账号建立随机密码,那么,这个随机密码在哪里呢?看到上图了吗?里面有
一个以.err结尾的文件,这个随机密码就在这里面了;后面服务器启动了,就可以使用root账号加这个密码登录;
至此,数据文件初始化完成。
在官方指导文件中,还有更多的初始化命令可以选择,比如--user、--defaults-file、--console……
-首次启动MySQL服务器
在前面配置文件写好、数据目录初始化后,即可启动MySQL服务器了。
MySQL的各种命令见于安装目录下的bin目录中:mysql、mysqld、mysqldump、mysqladmin……(我用过的)
这一小节讲的启动MySQL服务器是使用mysqld命令,执行如下命令即可启动:
mysqld.exe --console
不过,--console可以不要,使用它的目的是为了在命令行中直接看到日志消息。
MySQL的默认端口是3306,从下图可以看出,MySQL服务器已启动并准备接受连接。
MySQL服务器启动后,可以在Windows的任务管理器中看到它:
注意,在启动MySQL服务器时会出现Windows安全报警串口,点击“允许访问”按钮即可。
注意,MySQL运行期间发产生错误日志记录,这些错误日志记录会存储到数据目录下的以*.err结尾的文件中,当然,记录错误日志的文件
也可以在mysqld命令启动服务器时设置,设置执行为--log-error。
使用mysqld命令启动服务器时,还可以输入下面的指令:
--standalone
--debug
--shared-memory (需要更深入了解)
mysqld命令支持的所有选项可以通过下面的命令输出(注意,内容超级多,可以输出到某文件中):
mysqld --verbose --help
verbose:adj.,冗长的,啰嗦的
MySQL服务器关闭方式:使用mysqladmin命令
mysqladmin -u root shutdown
不过,我是使用Ctrl+C停止服务器运行。
-连接运行的MySQL服务器
本文使用mysql命令从Windows命令行里连接它。
打开Windows命令行,进入MySQL安装目录,使用bin目录下的mysql.exe命令连接运行的服务器。
输入以下命令:
bin\mysql.exe -uroot -p
再输入root的密码即可登录到服务器。
前面讲过,root的密码是什么,本文前面有介绍。
使用show databases;命令查看服务器中的数据库:失败了!强制修改root账号的密码!
修改完毕后,再使用show databases;即可看到当前存在的数据库列表了,只有4个数据库存在,每个有什么用,需要另行介绍。
查看数据库服务器的账户信息:存在于mysql数据库的user表中,初始化时仅有3个账户,root是其中之一,其它两个没用过。
MySQL更多的操作、命令怎么使用,请大家各自看相关教程吧!
-将MySQL操作命令添加到Windows环境变量PATH中
在前面使用MySQL的命令时,我们都需要输入命令的路径,所以要从命令行进入MySQL的bin目录,很不方便!
为了能在命令行工具中直接使用命令,因此,将MySQL的bin目录添加到Windows环境变量PAH中。
注意,环境变量PATH在我的电脑是Path。
注意,不同Windows操作系统的添加窗口不一样,Windows 10的如下图。
MySQL命令添加到环境变量PATH后,可进行测试,我这次是成功的。
在官方指导的最后提出,如果电脑上安装了多个MySQL的话,不建议把MySQL命令添加到PATH中,一个也不要添加,避免冲突。
当然,这样的电脑一定是程序员的电脑、开发用的电脑。
-将MySQL服务器安装为Windows服务并随机启动
这也是本文要讲的最后一步了。
官方指导:2.3.5.8 Starting MySQL as a Windows Service
官方指导中介绍的很清楚,现我用我的表达方式介绍下。
MySQL安装为Windows服务,这样它就可以随机启动了,还可以使用命令NET或图形化工具服务管理器进行管理。
注意,接下来的操作需要使用以管理员打开的Windows命令行。
注意,在设置前请把MySQL服务器停止运行。
执行此步骤需要使用mysqld命令,用管理员身份打开命令行,在其中输入mysqld -install命令即可完成安装;
安装完成后,可以在Windows的服务管理器下看到MySQL,启动类型为“自动”,状态为空——停止。
自动 意味着MySQL服务器将在Windows开机后启动,无需手动操作。
现在,启动MySQL服务器。两种方式:NET命令、Windows服务管理器中启动。下图显示的是NET命令方式。
启动成功,可以在服务管理器看到MySQL服务的状态为“正在运行”,也可以通过客户端连接它;
至此,MySQL服务器安装完毕,请尽情使用吧!请尽情使用Python来连接测试开发吧!
在官方指导中,安装MySQL为Windows服务还可以添加其它参数,比如,--install 指定服务器名、--defaults-file、--local-service等。
使用--install安装的MySQL服务的默认名称是MySQL,可以修改。
参数的具体意思可以看官方指导文档。
另外,使用--install参数安装的MySQL服务是随机启动的,也可以使用--install-manual参数将其安装为手动启动。
其它:
刚刚安装好的MySQL文件夹大小有近2GB,其中,lib目录下的mysqlserver.dll超过1GB:
感言:嘿
这次照着官方指导安装MySQL的收获还是很多的,之前参考一些中文资料安装,总是觉得不踏实,这次,不少疑惑都解除了,感觉自己又能了!
发现BUG:180507-1401
在安装为服务后,配置的启动类型是“自动”,预期是要开机自动启动的,可是,并没有。
案发现场:那天在安装完后,停止了MySQL服务器的运行,然后关机的。
刚刚的测试:启动了MySQL,然后重启电脑,重启后发现,MySQL服务已启动了。再次重启电脑,MySQL服务仍然是启动的。
再次测试:1.停止MySQL服务,关机,开机,MySQL服务没运行。2.启动MySQL服务,关机,开机,MySQL服务已启动。(仅分别测试了一次)
测试得到的现象:
MySQL服务在Window 10启动后是否启动,与其上一次关机时的状态相同。(重启电脑的状况有些复杂)