1、官网下载解压版MySQL数据库
下载链接:https://dev.mysql.com/downloads/mysql/
2、将下载的mysql放在自己喜欢的盘符,不一定是C盘,例如我的就是解压在D盘,D:\mysql\mysql-8.0.18-winx64
3、在D:\mysql\mysql-8.0.18-winx64文件夹下新建my.ini配置文件,内容如下:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\mysql\\mysql-8.0.18-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
4、打开windows+R输入cmd,切换盘符至D:\mysql\mysql-8.0.18-winx64\bin目录下
执行:mysqld --initialize --console
执行完成后,会输出 root 用户的初始默认密码,这个我没有截图,格式是:root@localhost:初始密码,不过这个初始密码我没有登录成功过,后面讲一下无密码状态下初始密码的操作。
继续执行:mysqld install
上面步骤成功后,执行:net start mysql,如果服务能正常启动,说明MySQL数据库安装成功。
5、因为初始密码无法登录,所以我们说一下怎么在无密码状态下初始密码
(1)打开cmd,切换盘符至D:\mysql\mysql-8.0.18-winx64\bin目录下,执行:net stop mysql,关闭数据库服务;
(2)待mysql服务停止后,执行:mysqld --shared-memory --skip-grant-tables,此命令执行后,当前窗口处于锁定状态,我们重新打开一个cmd窗口;
(3)在新的cmd命令窗口,同样的先切换一下盘符,输入mysql -uroot -p,后回车,提示输入密码时直接按回车进入;当出现mysql> 的时候,说明我们已经连接到数据库;
(4)执行use mysql;
(5)执行update user set authentication_string='' where user='root';
说明:网上的update mysql.user set password='newpassword' where user='root';和update mysql.user set password=PASSWORD('newpassword') where User='root';在8.0以上版本已失效。
(6)执行:alter user 'root'@'localhost' identified by '123456';
(7) 如果提示成功,继续执行:flush privileges;如果不成功,则执行:flush privileges;后在执行alter user 'root'@'localhost' identified by '123456';
(8)总之,这一步:flush privileges;不能少,只要成功就执行,不成功也要执行以下。
6、第5步执行完毕后,我们就已经初始化密码了,但是如果使用客户端登陆数据库时会出现:caching-sha2-password的问题,这是mysql在8.0版本更改密码验证规则导致的,为什么更改后就不能登录,我也不知道。知道原因了,就知道怎么解决了。
7、修改密码验证规则,也就是还原到以前的密码验证方式。通过cmd登录mysql数据库,执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户密码
FLUSH PRIVILEGES; #刷新权限
8、至此,MySQL数据安装及客户端无法登录问题解决完毕。