Day1 MySQL入门学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27283619/article/details/88936392

一、Win10 安装MySQL 8.0

首先先要下载MySQL,我下的是mysql-8.0.15-winx64安装教程参考

1. 配置MySQL8的配置文件

把刚下载好的安装包解压到我们想要安装的路径,我这里是:D:\DatabaseSoftware\MySQL8 (我这里的最后的MySQL8是我进行了更改)。
然后进入该路径,用任意文本编辑器把以下内容保存为my.ini文件,我用的是Notepad++。注意:里面的安装目录要进行替换

[mysql]
# 设置mysql客户端默认字符集
default-character-set = utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\\DatabaseSoftware\\MySQL8 # 这个注意替换为自己的
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir = D:\\DatabaseSoftware\\MySQL8\\sqldata # 这个是MySQL5版本需要的
# 允许最大连接数
max_connections = 20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server = utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine = INNODB

2. 安装MySQL

以管理员命令打开cmd命令行工具(Win10中可以直接在搜索框搜索cmd,右键,以管理员命令运行即可)。
切换到安装包下的bin目录,

cd D:  # 注意win10中跨盘,要切换盘符, 直接cd D:\DatabaseSoftware\MySQL8\bin无法达到目的
cd D:\DatabaseSoftware\MySQL8\bin  # 可以直接把路径复制进去

初始化数据库:

mysqld --initialize --console

然后会输出root用户的初始默认密码,这时候一定要不直接把黑框关掉了,要把这个初始密码记下来,后面登录会用到。如果不小心关掉了,重新初始化安装一下就好。如下:
在这里插入图片描述
执行安装、启动命令

mysqld install  # 安装mysql
net start mysql  # 启动mysql

输出如下:(第一次启动失败原因是我电脑上之前安装了MySQL5.7,它正在运行,把它关掉重新运行命令就可以了)
在这里插入图片描述

3. 登录MySQL

先解释一下命令:
mysql -h 主机名 -u 用户名 -p
参数说明:
-h:指定客户端所要登录的MySQL主机名,登录本机(localhost或127.0.0.2)该参数可以省略;
-u:登录用户名
-p:告诉服务器将会使用一个密码来登陆,如果所要登录的用户名密码为空,可以忽略此选项。
在刚刚的cmd窗口输入

mysql -u root -p  # 按回车

然后把刚刚记下来的密码输进去,注意大小写不要混了。
正常的话就登录成功了。
输入quit或者exit退出登录。如下所示:
在这里插入图片描述

4. 更改登录密码

刚刚自动生成的密码特别难记,所以我们需要更改一下密码。
进入mysql后输入以下指令,注意命令以;结尾,’ ’里面是你想要换成的密码。

扫描二维码关注公众号,回复: 5826075 查看本文章
ALTER USER root@localhost IDENTIFIED BY '123';   

如下:
在这里插入图片描述
下次登录就需要新密码了。
另外一种方法是通过交互界面进行密码更换:
在Win10的搜索框输入mysql,找到MySQL Workbench 8.0CE运行
在这里插入图片描述
在这里插入图片描述
然后会弹出对话框让你填入老密码和新密码,(如果不是刚安装就不会弹出俺哥对话框了)

5. 删除MySQL

以下命令都是以管理员身份运行cmd下进行。

# 第一步 停止MySQL服务
net stop mysql  # 停止所有MySQL服务
# 第二步 下载MySQL服务
mysqld -remove  # 卸载MySQL服务
# 第三步 清理注册表信息
# win + R 然后输入regedit点击确定即可打开注册表
# HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL
# HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL

6. 数据库的相关配置

参考资料
查看默认数据库:show databases; # 注意后面有分号
选择mysql数据库:use mysql;
查看默认MySQL用户:select host, user, authentication_string, plugin from user;
在这里插入图片描述
创建新用户:CREATE USER ‘Jock’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’; # 注意这里有分号,Jock, localhost, 123456分别对应用户名,host名称,密码,自己依次替换就好。
给新用户授权:GRANT ALL PRIVILEGES ON . TO ‘Jock’@‘localhost’;
刷新权限:FLUSH PRIVILEGES;
在这里插入图片描述

7. MySQL8.0连接Navicat

Navicat这个工具可以非常方便的管理MySQL8.0,感觉对于window用户非常友好,强烈建议使用!
Navicat连接MySQL时报错:Client does not support authentication protocol requested by server;consider upgrading MySQL client
在这里插入图片描述
报错原因:MySQL8.0和MySQL5.0两个版本的加密规则不一样,导致Navicat无法连接。
通过select host, user, authentication_string, plugin from user; 查看密码规则。
在这里插入图片描述
如图:plugin这一列是对应用户的加密规则,可以看到MySQL8.0初始的加密规则是caching_sha2_password.
解决方案就是把caching_sha2_password改为mysl_native_password即可
命令如下:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’; # 修改root用户的加密规则及密码。
大功告成:
在这里插入图片描述
更好的建议是:
在开始配置安装文件的时候,在my.ini中加上这两句,从而指定相应的加密规则:

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin = mysql_native_password

二、数据库基础知识

数据库(database)定义:保存有组织的数据的容器(通常是一个文件或一组文件)。
数据库管理系统(Database Management System, DBMS):方便我们创建、管理、操纵数据库的软件系统。
关系型数据库(relation database):是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
表(table):某种特定类型数据的结构化清单。同一个数据库中,表名是唯一的,原因都是为了标识,避免表意不清。
模式(schema):关于数据库和表的布局及特性的信息。
二维表:在关系模型中,数据结构表示一个为二维表,一个关系就是一个二维表。
列(column):表中的一个字段。所有表都是由一个或多个列组成的。
数据类型(datatype):所允许的数据的类型。每个表列都有相应的数据类型,它限制(或允许)该列中存储的数据。设定数据类型的原因是帮助正确的分类数据,同时优化磁盘的使用。
行(row):表中的一个记录(record)。
主键(primary key):一列(或一组列),其值能够唯一标识表中每一行。主键的意义:标识特定的行,便于更新或删除表中特定行。
作为主键应该满足的条件:
1)任意两行都不具有相同的主键值,即这一列的数据都是唯一的;
2)每一行都必须具有一个主键值(主键列不允许NULL值);
3)主键列中的值不允许修改或者更新,保证唯一性,便于查找;
4)主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)
外键(foreign key):是表中的一列,其值必须列中另一表中的主键中。作用:外键是保证引用完整性极其重要的部分。

三、MySQL数据库管理系统

视图:视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
存储过程:为以后使用而保存的一条或多条SQL语句。

猜你喜欢

转载自blog.csdn.net/qq_27283619/article/details/88936392