刚在又双叒叕Windowes Server下搭了个MySql,8.0版本的
之前通过安装包安装5.7版本时,还问题不大的。这次遇到不少坑,而且网上博客都是千篇一律的 坑人无数
废话少说
一、下载
https://dev.mysql.com/downloads/mysql/
二、解压
内容如下:
三、配置环境变量
将mysql的bin文件路径添加到系统环境变量path中
如:C:\mysql\bin
添加配置文件,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
将初始密码记录下来,data存储的为数据库文件不要轻易的动.
在配置过程中出现任何问题,都可以将data删掉重新执行步骤4进行重新配置,数据库正式投入使用了就不要轻易动了
五、安装服务
cmd执行:
mysqld --install
后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。 安装完成之后,就可以通过命令net start mysql启动MySQL的服务了
到此本地连接基本配好了,试试,ok
连接成功后,会让你修改初始密码
六、远程连接配置
首先需要打开3306端口,这没啥好说的
当你直接进行远程连接会提示1130,这个错误
最好是重新打开一个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 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
6.更新 root 用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
password 为你新设置的密码。
7、再进行远程连接测试
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 |
|
3.下面直接演示正确修改root密码的步骤:
二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:
1 |
|
此处有两点需要注意:
1、不需要flush privileges来刷新权限。
2、密码要包含大写字母,小写字母,数字,特殊符号。
修改成功; 重新使用用户名密码登录即可;
注意: 一定不要采取如下形式该密码:
1 2 |
|
这样会给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 |
|
OK.现在再去重连。perfect!