Windows平台安装Mysql 8.0.4的一些注意事项

一、Windows平台安装Mysql 8.0.4

Mysql 8.0.4新增了若干特性,比如json_table()函数,但官方只为 8.0.4版提供了zip安装模式。按照官方文档及自己摸索,步骤如下:

  1. 下载zip安装介质,URL是https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.4-rc-winx64.zip;
  2. 将zip文件解压至某目录,假设为D:mysql8;
  3. 在解压目录下生成my.ini文件,其中在[mysqld]段至少包含basedir和datadir两项;
  4. basedir即为解压目录,本例中为D:/mysql8,注意目录符或者用“/”或者用"\",不能是“”;datadir不需要事先创建;
  5. 增加系统环境变量MYSQL_HOME,其值等于my.ini中的basedir+/bin,目录符为“”;再将“%MYSQL_HOME%”增加到PATH中;
  6. 以系统管理员身份启动一个cmd,执行:mysqld --initialize-insecure,作用是初始化数据目录datadir,大约会持续几十秒;
  7. 继续在cmd执行:mysqld -install,成功将增加一个名为"MYSQL"的服务;
  8. 继续在cmd执行: net start mysql,启动mysql;若不报错且不自动退出则表明安装正常;
  9. 在cmd执行:mysql -u root -p,提示输入密码时直接按回车即可;
  10. 在mysql命令行修改root密码,比如:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
  11. 退出mysql命令行再重新登录,这时就需要输入正确的密码才能成功登录了。

二、若干注意事项

  • 没有my.ini文件时的默认参数

如果没有my.ini文件,随后的安装步骤仍可正常进行,默认basedir为%MYSQL_HOME%+/bin,而datadir为%MYSQL_HOME%+/data。

  • 关于初始化数据目录的-insecure参数

首先强调:数据目录datadir不需要创建,如已存在必须为空目录。

初始化数据目录(执行mysqld --initialize)时,如果后面带-insecure参数,表示root@localhost的初始密码为空。而如果不带该参数,则会为root@localhost生成一个随机密码并显示,请牢记。

  • 关于my.ini中的skip-grant-tables

skip-grant-tables与skip_grant_tables等效。在Windows平台,如果my.ini中含有skip-grant-tables,则在执行net start mysql时mysql服务无法正常启动。win7, server 2012均是如此,其它windows平台未经测试,请自行验证。

但对于8.0.3及之前版本,skip-grant-tables貌似不会引起问题。此问题曾困扰本人很长时间,一度以为windows平台不支持mysql 8.0.4。

  • 重新安装

因为是用压缩包安装,重装时只须:

(1) 停止mysql: net stop mysql

(2) 删除服务:mysqld -remove

(3)删除datadir目录

(4)从步骤6开始重新安装。 

原文地址:https://www.cnblogs.com/wggj/p/8777424.html