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
再进行修改密码就可以了。