windows下通过MSI Installer的方式安装mysql 8.0并开启远程访问

Windows(虚拟机Windows Server 2012R2 64位)下通过MSI Installer的方式安装mysql 8.0并开启远程访问,中间踩了不少坑,记录一下。

一、准备安装包。

https://dev.mysql.com/downloads/windows/installer/8.0.html

二、安装

1、双击 mysql-installer-community-8.0.19.0.msi 进入安装界面。

 注意:需要.net framework 4.5.2支持,没安装的先安装.net framework。

 2.根据你自己的需求选择安装类型,我这里选择Custom,点击Next。

 3.选择MySQL Server 8.0.19 - X64和MySQL Workbench 8.0.19 - X64,点击右箭头放到待安装列表,点击Next。

 4.点击Execute进行安装。

 5.安装过程如下,等到Status都为Complete的时候,点击Next。

 6.准备进入配置界面,点击Next。

 7.选择Standalone MySQL Server/Classic MySQL Replication,点击Next。

 8.配置名称和端口,我这里选择默认的,然后点击Next。

 9.选择认证方式,这里选择第二个,具体看过之前有人说选第一个有什么bug来着,我没仔细研究,反正这个不影响个人使用,点击Next。

 10.设置root的密码,点击Add User添加一个用户,用于后面远程访问。

 

 11.默认,点击Next。

 12.执行配置,点击Execute。

 13.全部完成后点击Finish。

 14.点击Next。

15.点击Finish完成所有安装配置,(根据自己决定Start MySQL Workbench after Setup是否勾选,我没有勾选打开工作台)。

三、设置环境变量。

MySQL安装默认安装在 C:\Program Files\MySQL路径下。

1.新建系统变量:MYSQL_HOME:C:\Program Files\MySQL\MySQL Server 8.0

Path中添加:%MYSQL_HOME%\bin

2.验证环境变量配置是否成功

cmd中执行输入mysql -uroot -p回车,然后输入前面root账号的密码,如下图即设置成功。

注意,有的人会出现输入mysql -uroot -p回车会出现

 四、设置远程访问。

1.查看一下mysql用户:

use mysql;--切换到mysql数据库
select user,host,plugin from user; --查询用户

其中这个apps用户是我们之前安装的时候建立的,这个host为%即可用于任意ip访问。

(或者也可以用命令新建一个用户用于远程访问:

CREATE USER 'new_user'@'%' IDENTIFIED BY 'passwd';

这里host 是 % 代表可以任意ip访问  plugin一定是 mysql_native_password 不然客户端连接不了。)

2.给该用户赋权

GRANT ALL ON *.* TO 'apps'@'%'; --给用户赋权限 操作数据库的权限,这里我赋的是全部的权限

3.刷新权限

flush privileges;

4.本地navicate连接测试,成功。

遇到的问题:

一、有时候执行mysql -uroot -p的时候提示如下:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

两种方法:

1.修改my.ini配置文件。

windows中安装mysql 8.0,配置文件会放在C:\ProgramData\MySQL\MySQL Server 8.0下面,这个C:\ProgramData是个隐藏文件夹,需要设置查看隐藏文件开启才可以看到。

在[mysqld]下面任意一行加入:skip-grant-tables,保存然后重启Mysql服务(这种方式登录改完密码之后,把配置文件里面的这行代码去掉)。但是有的电脑修改以后没法重启mysql服务,这种情况见下面方法2。

 2.执行下面的代码,然后重新用root登陆。

mysqld --shared-memory --skip-grant-tables

二、修改密码的时候报以下错误:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。

这是由于密码不符合密码复杂性要求,但是有时候我们自己学习不想把密码设置那么复杂,比如设置个1234,该怎么办呢?我们可以用以下方法修改密码复杂性要求。

1.查看插件:

show variables like 'plugin_dir%';

C:\Program Files\MySQL\MySQL Server 8.0\lib\plugin\

打开插件目录可以看到密码校验插件

 2.安装插件

在my.ini文件中添加如下几句:

#插件目录

plugin_dir="C:\Program Files\MySQL\MySQL Server 8.0\lib\plugin"

#密码策略

plugin-load=validate_password.dll

#永久使用该插件

validate-password=FORCE_PLUS_PERMANENT

validate-password有几种形式:

  ON:使用该插件

  OFF:关闭该插件

  FORCE:强行使用该插件

  FORCE_PLUS_PERMANENT:永久使用该插件

运行代码安装插件:

INSTALL PLUGIN validate_password SONAME 'validate_password.dll';

查看密码策略:

show global variables like '%validate_password%';

set global validate_password.policy=LOW; --设置密码等级为low

set global validate_password_length=4; --设置密码长度可大于等于4

再进行修改密码就可以了。

猜你喜欢

转载自www.cnblogs.com/xuanjiaming/p/12735244.html