首先跟大家唠一唠家常,随着MySQL迅速的更新,MySQL突飞猛进已经更新到了8.0版本,那么它和我们之前用的5.X版本有什么明显的区别那?
首先给大家看下MySQL5.X自带表的查询速度
之后献上MySQL8.0的自带表的查询速度
一样的数据结果显而易见,MySQL8.0的坑我是走了个遍,为了让大家少走弯路,献上以下手动安装方法
1. 官网下载并解压
我下载了mysql-8.0.11-winx64
下载地址:https://dev.mysql.com/downloads/file/?id=476233
直接点击我红色记号笔圈出的超链接,这句话的中文意思是:不用了,直接开始下载
2. 设置系统环境变量
这个不多说了百度上一堆,配置这个只是为了命令行方便...
3. 编写配置文件
如解压位置为D:\App\MySQL\mysql-8.0.11-winx64
就在此处手动创建my.ini文件,文件内容如下:
[mysql]
; 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
;设置3306端口
port = 3306
; 设置mysql的安装目录
basedir=D:\App\MySQL\mysql-8.0.11-winx64
; 设置mysql数据库的数据的存放目录
datadir=D:\App\MySQL\mysql-8.0.11-winx64\data
; 允许最大连接数
max_connections=200
; 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
注意修改安装目录与数据存放目录
4. 数据库初始化
用管理员身份运行命令行,进入安装MySQL下的bin目录输入如下命令:
自动生成root用户,可以不带密码:
mysqld --initialize-insecure
或者带随机密码:
mysqld --initialize
随机密码被保存在错误日志里,位于(前面配置好的datadir)数据文件夹下,文件名为:主机名.err
注意:如果要重新初始化,必须先清空data文件夹。(包括停止下一步的服务)
我看的教程就是没有这一步,导致:
服务无法启动。
服务器没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
5. 安装并启动服务
在命令行下执行。
安装服务:
mysqld -install
启动服务:
net start mysql
回退的时候反过来
停止、卸载服务:
net stop mysql
mysqld -remove
6. 进入MySQL
无密码进入:
mysql -u root
有密码的进入方式:
mysql -u root -p
有密码的话进去就要求输入,随机密码的话位置上面提到过了。
感动,终于看到了:
mysql>
7.设置(或修改)root用户密码:
默认root密码为空的话 ,下面使用navicat就无法连接,所以我们需要修改root的密码。
这是很关键的一步。此处踩过N多坑,后来查阅很多才知道在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。
下面直接演示正确修改root密码的步骤:
一、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。
-
- use mysql;
- update user set authentication_string='' where user='root'
- 下面直接演示正确修改root密码的步骤:
二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:
-
- ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'
此处有两点需要注意:1、不需要flush privileges来刷新权限。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、use mysql;
2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
3、FLUSH PRIVILEGES;
OK.现在再去重连。perfect!
文章结合以下博客整理而得,在安装过程中,踩坑无数,费了半天功夫,才最后总结这篇mysql8.0安装及使用整合篇博客,附上参考链接:
https://www.cnblogs.com/wyftheblog/p/8965597.html
https://blog.csdn.net/ChickenBro_/article/details/80690238#commentBox