1.进入地址:https://dev.mysql.com/downloads/mysql/ 下载mysql-8.0.18-winx64
2.解压zip包,并将解压文件放入一个文件夹下,如图:
3.配置环境变量(目的是为了避免在CMD窗口下操作时反复切换路径)
在Path下添加 D:\MySQL\mysql-8.0.18-winx64\bin
4.编写配置文件
我们发现解压后的目录并没有my.ini(或my-default.ini)文件,没关系可以自行创建。在安装根目录下添加 my.ini,比如我这里是:D:\MySQL\mysql-8.0.18-winx64\my.ini,写入基本配置:
注意:data文件夹是初始化数据库之后才有的,my.ini文件默认是没有的,自己可以编写如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\MySQL\mysql-8.0.18-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\MySQL\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8MB4
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=UTF8MB4
其中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.更改密码和密码认证插件
进入D:\MySQL\mysql-8.0.18-winx64\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'@'%';
8.创建和连接数据库详细步骤:
(1)启动服务:net start mysql
(2)登录:mysql -uroot -p
(3)创建数据库:
create database test;
(4)使用数据库:
use test;
(5)新建表:
insert into `user` values('lin','123456');
(6)查看表:
select * from `test`;
(7)显示数据库:
show databases;
(8)显示数据表:
show tables;
(9)创建新的数据表:
mysql> create table `match`(
-> `match_id` INT NOT NULL AUTO_INCREMENT,
-> `match_name` VARCHAR(20) NOT NULL,
-> PRIMARY KEY(`match_id`)
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
9.MYSQL JDBC驱动程序:com.mysql.cj.jdbc.Driver
10.连接数据库:"jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","root","root"
备注:在英文键盘输入环境下,按图示按钮输入反引号 `
实例解析:
• 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
• AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
• PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
• ENGINE 设置存储引擎,CHARSET 设置编码。
• 注意:MySQL命令终止符为分号 ; 。
• 注意: -> 是换行符标识,不要复制。
至此,Win8安装mysql-8.0.18-winx64,创建和连接数据库详细步骤已经介绍完了。