最近重装了系统,所以安装 MySQL必不可少。

用安装包会舒服点,但我一直都用压缩版的。

突然想起之前用压缩版来安装,会涉及到一个问题,就是远程访问的问题。就是别的机器向访问你本地数据库的时候,需要开启了配置才能访问。安装包安装的时候,会有勾选的。

一) 安装 mysql 服务

压缩包解压

解压目录:C:\Application\work\mysql-5.6.31

初始化mysql配置文件

mysql 目录下新建 my.ini 文件,内容配置如下

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=C:\Application\work\mysql-5.6.31
# 设置mysql数据库的数据的存放目录
datadir=E:\Work\workspace\mysql\5.6.31\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB 

#max_allowed_packet=100M


max_allowed_packet=5000M
wait_timeout=288000
interactive_timeout = 288000
安装、卸载 mysql 服务

网上有些文章会有环境变量的配置的步骤,但我觉得这个步骤没有配置也没有关系。

  1. 以管理员身份启动 cmd 窗口
  2. cmd 窗口进入到 mysql 目录下的 bin 目录
  3. 执行安装、卸载脚本
  4. 打开本地服务校验时候安装、卸载成功

安装服务: mysqld –install

默认安装的服务名称是MySQL,如果想要自定义服务名称,执行:mysqld -install MySQL-5.6.31

mysql 指定压缩算法 mysql压缩包配置_mysql

卸载服务:mysqld --remove MySQL

mysql 指定压缩算法 mysql压缩包配置_数据库_02

二)启动、停止 mysql 服务

  1. 以管理员身份启动 cmd 窗口
  2. cmd 窗口进入到 mysql 目录下的 bin 目录
  3. 执行启动、停止脚本
  4. 打开本地服务校验服务状态
如果(一)步骤的 cmd 窗口还么有关,执行如下命令

启动服务:net start MySQL-5.6.31
关闭服务:net stop MySQL-5.6.31

这次启动 mysql 服务遇到了一个报错,如下图

mysql 指定压缩算法 mysql压缩包配置_mysql_03


报了个错误码 1067。进入到 mysql 安装目录下的 data 文件夹,里面有一个 .err 后缀的文件,此时能看到一行报错 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.user’ doesn’t exist.(还有一种看报错信息的方法就是打开系统的事件查看器,应用程序的日志也是能看到的。)

报错信息是说没找到 user 表,是因为我的 my.ini 文件里头 datadir 这个参数的路径不在 mysql 的安装路径里头,所以导致 mysql 服务启动的时候,扫描 data 文件夹的时候没有找到对应的表。

解决办法是1.修改 datadir 参数的路径;2.将 mysql 安装路径下 data 文件夹复制到 datadir 地方。

再次执行 net start MySQL-5.6.31,服务启动成功。

三)修改默认密码

mysql 压缩版安装,最后一步需要修改默认密码,默认密码是为空的。

修改步骤如下:

第一步,如果启动服务的 cmd 窗口还没关,执行:mysql -u root –p,然后两次回车

mysql 指定压缩算法 mysql压缩包配置_安装教程_04

第二步:选择数据库,执行:use mysql;,然后回车,如果少了这个步骤直接修改密码会报错

mysql 指定压缩算法 mysql压缩包配置_mysql 指定压缩算法_05

第三步:修改密码,执行:update user set password=password(‘root’) where user = ‘root’;,然后回车

第四步:刷新权限,执行:flush privileges,然后回车。

mysql 指定压缩算法 mysql压缩包配置_数据库_06

至此,安装教程就结束了。可以通过客户端访问myql了。