Mysql8.0安装步骤

情景:   [Err] 1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

升级Mysql,将Mysql升级到5.7版本以上就不会出现类似的问题了。

第一步:下载安装包 

官方地址:https://dev.mysql.com/downloads/mysql/

è¿éåå¾çæè¿°

这里第一项是在线安装,第二项是离线包安装

第二步,安装 
我这里选择的是Custom自定义安装,也可以选择Default默认 

è¿éåå¾çæè¿° 因为我是自定义安装,所以我只选择了下面这2个安装内容 

è¿éåå¾çæè¿°

这时如果出现下面的提示,代表机器没有VC的环境,使安装无法进行下去,这时需要先下载好VC环境 
这里写图片描述
下载VC环境:官方地址 
如果地址失效,也可以百度:microsoft visual c++ 2015 进行下载

环境下载安装完后,我们再回来重新安装,发现刚才此步会变成 

 è¿éåå¾çæè¿°

接下去一路安装下去 

 
上面这步是创建一个用户,然后接着往下走 


安装完成后,可以再服务里,看到MYSQL服务已经启动,bin目录(默认为:C:\Program Files\MySQL\MySQL Server 8.0\bin)

但此时如果我们用Navicat等第三方应用登录,会提示: 

Authentication plugin 'caching_sha2_password' cannot be loaded

经查看发现,8.0改变了 身份验证插件 , 
解决方式

ALTER USER stocker@localhost IDENTIFIED WITH mysql_native_password BY 'stocker';
1
如果是最新版本的第三方软件,可能已经自动改变了身份验证,无需手动修改

 

第三步 配置环境变量

将bin路径添加到变量值中,前后以 ; 开头结尾 

mysql -uroot -p进入

status查看状态

查看编码信息:

show variables like '%colla%';

show variables like '%char%';

第四步 修改配置文件my.ini(mysql8.0的配置文件默认在C:\ProgramData\MySQL\MySQL Server 8.0隐身文件。同时也要复制一份到C:\Program Files\MySQL\MySQL Server 8.0与bin目录同级)

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\\software\\mysql\\mysql-8.0.11-winx64   # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
# 设置mysql数据库的数据的存放目录
datadir=E:\\software\\mysql\\mysql-8.0.11-winx64\\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

重启mysql服务

net stop mysql80

net start mysql80

二、navicat 连接 mysql 出现Client does not support authentication protocol requested by server解决方案

USE mysql; 
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘831015’; 
FLUSH PRIVILEGES;

root是用户名,localhost是ip地址127.0.0.1都是特指本机,mysql_native_password是旧的密码验证机制,831015是密码,最后别忘了分号;

三、此版本使用caching_sha2_password的身份验证机制。在以往的版本中采用的是mysql_native_password 这种验证机制。
这是这个坑导致后面,Navicat连接会报错:
1251--Client does not support authentication protocol requested by server

PHP连接时也报错:
Unexpected server respose while doing caching_sha2 auth: 109

另外,采用这种机制的验证方式似乎对密码的设置要求也提高了,不能是纯数字!!!!!!!!!!(我的密码设置成数字+字符了)否则会报这个错:
ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements

解决策略
更改验证方式,先进入mysql,输入:
 select host,user,plugin,authentication_string from mysql.user;

得到:

å¨è¿éæå¥å¾çæè¿°
为了直观,我创建了个php用户,可以看到它默认的方式总是caching…bra bra bra,root是我修改过的。
确认是这个caching搞的鬼后:输入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '!1234'  //更改验证方式
1
回车,输入下面这个刷新
FLUSH PRIVILEGES;

mysql配置文件加入

default_authentication_plugin=mysql_native_password //加入这句话

重启mysql服务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值