1.进入地址:https://dev.mysql.com/downloads/mysql/
下载mysql-8.0.11-winx64
2.解压zip包,并将解压文件放入一个文件夹下,如图:
3.配置环境变量(目的是为了避免在CMD窗口下操作时反复切换路径)
在Path下添加 解压的mysql的bin目录路径
如:D:\Program Files\mysql-8.0.11-winx64\bin
4.编写配置文件
我们发现解压后的目录并没有my.ini(或my-default.ini)文件,没关系可以自行创建。在安装根目录下添加 my.ini,比如我这里是:D:\Program Files\mysql-8.0.11-winx64\my-default.ini,写入基本配置:
添加方式:新建一个txt文件,将以下内容复制进去(记得改对应的路径),再将文件后缀改为ini
注意:data文件夹是初始化数据库之后才有的,my-default.ini文件默认是没有的,自己可以编写如下:
[mysqld]
\# 设置3306端口
port=3306
\# 设置mysql的安装目录
basedir=D:\Program Files\MySQL
\# 设置mysql数据库的数据的存放目录
datadir=D:\Users\qiuzhiwen\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
*其中basedir和datadir可以根据自己的实际情况来决定!*
5.按“win”键打开开始菜单,在搜索框中输入“cmd”,在搜索结果中选中“命令提示符”程序,右键选择“以管理员身份运行”
6.MySQL服务安装及初始化
执行mysqld install命令当出现Service successfully installed时表示mysql服务安装完成
注意:mysqld --install [服务名]
后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。
Mysql初始化
在MySQL安装目录的 bin 目录下执行命令:
mysqld --initialize --console
执行完成后,会打印 root 用户的初始默认密码,比如:
注意!执行输出结果里面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: NgjbnKGd2_!其中root@localhost:后面的“NgjbnKGd2_!”就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。要是手贱,关快了,或者没记住,那也没事,删掉初始化的 datadir 目录,再执行一遍初始化命令,又会重新生成的。当然,也可以使用安全工具,强制改密码,用什么方法,自己随意。
参考:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。
7.更改密码和密码认证插件
进入解压的mysql文件bin路径下,执行mysql -u root -p命令,然后输入之前保存的密码,我这里是Ng*jbnKGd2_!
修改用户密码,在MySQL中执行命令:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
修改密码验证插件,同时修改密码。
可以用 命令查看一下默认安装的数据库:
show databases;
use mysql;
show tables;
看到默认初始化了mysql数据库,其中user表里面存储MySQL用户信息。我们可以看一下默认MySQL用户:
select user,host,authentication_string from mysql.user;
管理员root的host是localhost,代表仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”
创建用户:
CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';
\#(需要注意:mysql8.0加密方式修改了)
\#检查用户
select user, host, plugin, authentication_string from user\G;
授权远程数据库
\#授权所有权限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
\#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';
查看用户权限
show grants for 'xxh'@'%';
*可能出现的问题*
1,原来装过mysql,没有删除干净
将c盘中的mysql,解压的mysql文件夹都删除干净,同时打开windows的设置,寻找应用选项,将所有和mysql相关的程序卸载
之后再重新解压mysql
打开cmd,切换路径到解压文件的bin目录下,执行mysqld -remove
,删除mysql服务
2,mysql服务无法启动
无法启动可能是没有安装服务
进入cmd
依次执行
mysqld -install
mysqld -remove
mysqld -install
mysqld --initialize-insecure备注:此命令为初始化时默认没有密码,这样登录mysql可直接使用mysql -u root登录,不需要输入密码,初始化的命令为mysqld --initialize,此命令会在初始化后随机生成密码,如果想查看密码可输入mysqld --initialize --console,查看生成的密码
net start MySQL
如此即可启动服务,但此时的mysql是没有密码的,所以使用mysql -u root登录,登录之后按步骤重新设置密码即可
use mysqld;
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123’;备注:123即为设置的密码,可随意调换
flush privileges;
exit