MySql8.0安装-远程连接

刚在又双叒叕Windowes Server下搭了个MySql,8.0版本的

之前通过安装包安装5.7版本时,还问题不大的。这次遇到不少坑,而且网上博客都是千篇一律的 坑人无数

废话少说

一、下载

https://dev.mysql.com/downloads/mysql/

MySql8.0安装-远程连接_第1张图片

二、解压

内容如下:

MySql8.0安装-远程连接_第2张图片

三、配置环境变量

将mysql的bin文件路径添加到系统环境变量path中

如:C:\mysql\bin 

MySql8.0安装-远程连接_第3张图片

添加配置文件,my.ini:

[mysqld]
sql_mode = NO_UNSIGNED_SUBTRACTION,NO_ENGINE_SUBSTITUTION
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\mysql
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

# SQL模式为strict模式

# sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

四、初始化数据库

cmd执行:

mysqld --initialize --console

MySql8.0安装-远程连接_第4张图片

将初始密码记录下来,data存储的为数据库文件不要轻易的动.

在配置过程中出现任何问题,都可以将data删掉重新执行步骤4进行重新配置,数据库正式投入使用了就不要轻易动了

五、安装服务

cmd执行:

mysqld --install

后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。 安装完成之后,就可以通过命令net start mysql启动MySQL的服务了

MySql8.0安装-远程连接_第5张图片

到此本地连接基本配好了,试试,ok

MySql8.0安装-远程连接_第6张图片

连接成功后,会让你修改初始密码

六、远程连接配置

首先需要打开3306端口,这没啥好说的

当你直接进行远程连接会提示1130,这个错误

MySql8.0安装-远程连接_第7张图片

最好是重新打开一个cmd进行一下操作,因为刚改密码了

1.登录MySQL

mysql -u root -p
  •  

输入您的密码

2.选择 mysql 数据库

use mysql;
  •  

因为 mysql 数据库中存储了用户信息的 user 表。

3.在 mysql 数据库的 user 表中查看当前 root 用户的相关信息

select host, user, authentication_string, plugin from user; 
  •  

执行完上面的命令后会显示一个表格

查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

4.授权 root 用户的所有权限并设置远程访问

GRANT ALL ON *.* TO 'root'@'%';
  •  

GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。

5.刷新权限

所有操作后,应执行

flush privileges;

在进行远程连接试试,发现报1251错误:

MySql8.0安装-远程连接_第8张图片

这是因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。

6.更新 root 用户密码

 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
  •  

password 为你新设置的密码。

7、再进行远程连接测试

MySql8.0安装-远程连接_第9张图片

ok,大功告成。

 

最开始还遇到缺少:MSVCR.dll的问题

下载地址:https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe

MySql管理客户端:

Navicat巨好用

下载地址:http://download.navicat.com.cn/download/navicat120_premium_cs_x64.exe

 

参考博客:https://blog.csdn.net/xinpengfei521/article/details/80403965

 

1.8. 设置(或修改)root用户密码:

默认root密码为空的话 ,下面使用navicat就无法连接,所以我们需要修改root的密码。

这是很关键的一步。此处踩过N多坑,后来查阅很多才知道在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

下面直接演示正确修改root密码的步骤:

  一、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。

1

2

use mysql;

update user set authentication_string='' where user='root'

 

3.下面直接演示正确修改root密码的步骤:

  二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:

1

ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'

  此处有两点需要注意:

1、不需要flush privileges来刷新权限。

2、密码要包含大写字母,小写字母,数字,特殊符号。

  修改成功; 重新使用用户名密码登录即可;

注意: 一定不要采取如下形式该密码:

1

2

use mysql;

update user set authentication_string="newpassword" where user="root";

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

至此,安装mysql和修改root密码告一段落。

开始navicat for mysql篇。

账号密码都正确,连接报错1251。OK 我们先来看看这个改动:

在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[新密码]');但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

so,我们这里需要再次修改一次root密码。

先登录进入mysql环境:执行下面三个命令。(记得带上分号)

1

2

3

use mysql;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

FLUSH PRIVILEGES;

OK.现在再去重连。perfect!

你可能感兴趣的:(MySql)