MelodyHub

没有伞的孩子必须努力奔跑!|

什么是约束

约束:constraint
MySQL中的约束,实则是对数据表中数据的限制条件

约束的作用

约束保证数据的完整性和一致性

  • 比如:设计数据表时,要求username字段不允许重复,这时候就需要在CREATE数据表时加入相应的约束。再比如注册时候必须填写邮箱、性别等。

约束的分类

按约束定义的位置可分

  • 列级约束
  • 表级约束

按约束的作用可分

主键 约束 PRIMARY KEY
外键 约束 FOREIGN KEY
非空 约束 NOT NULL
唯一 约束 UNIQUE KEY
默认 约束 DEFAULT

MySQL的数据类型

数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。例如,列中存储的为数字,则相应的数据类型应该为数值类型。

如果使用错误的数据类型可能会严重影响应用程序的功能和性能,所以在设计表时,应该特别重视数据列所用的数据类型。更改包含数据的列不是一件小事,这样做可能会导致数据丢失。因此,在创建表时必须为每个列设置正确的数据类型和长度。

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持所有标准SQL数值数据类型。

MySQL支持多种类型,大致可以分为三类:

  • 数值
  • 日期/时间
  • 字符(串)类型。

数据类型分类

  1. 数值类型(整数类型和小数类型)
  • 整数类型:包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。
  • 小数类型:
    • 浮点数类型包括 FLOAT 和 DOUBLE。
    • 定点数类型为 DECIMAL。
  1. 日期/时间类型
  • 包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
  1. 字符类型(文本字符串和二进制字符串)
  • 字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。
  • 二进制类型:包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。

问题描述

使用Navicat Premium连接MySQL失败,并弹窗提示👇

分析

从错误信息可知caching_sha2_password不能加载。

以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

大安装Mysql数据库的主机上登录Mysql对应的用户,上面连接时用的用户为root,所以我们登录root用户。

解决

  1. 执行命令,查看当前用户的加密方式:
1
2
3
use mysql;

select user,plugin from user where user='root';

可以看到当前用户的加密方式为caching_sha2_password。

  1. 登录MySQL后输入,执行命令:
1
2
3
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';

FLUSH PRIVILEGES;

将用户的加密方式改为mysql_native_password。

  1. 再次尝试连接Mysql,连接成功。

昨晚安装好MySQL后,可以登录。但是今天输入密码后,总是没办法登录。

刚开始我是用DOS窗口的,我检查了命令,命令也没输错啊。

接着转去MySQL Command Line Client试试,一直没反应。

我突然想到“是不是MySQL服务没有启动?”

果然!看了一下,这个时候MySQL需要手动启动,于是我把MySQL服务设置成开机自动启动,以后就省去手动启动这个麻烦。

回到DOS,输入mysql -h localhost -u root -p试试,可以正常登录MySQL了hh o( ̄▽ ̄)o


除了上面这种到【服务】手动开启MySQL服务的方法外,也可以用PowerShell(管理员)来启动。

输入命令net start mysql,启动MySQL服务。启动成功会在左下角弹窗提示👇

一定是要带有管理员权限的PowerShell,否者只会是这个样子👇

输入net start mysql,按回车键,就能启动 MySQL 服务,停止服务的命令为net stop mysql

安装好MySQL后,默认启动服务,这时候开始尝试登录MySQL数据库。

有两种登录方式:

  • Power Shell 或 CMD(DOS窗口)
  • 命令行客户端(MySQL Command Line Client)【安装软件时,一般会安装的】

Power Shell

  1. 启动 Power Shell 。
  2. 输入命令cd C:\Program Files\MySQL\MySQL Server 8.0\bin(cd+空格+安装目录/bin),回车。
  3. 输入登录命令,回车。登录命令有4中,选其一即可:
1
2
3
4
5
6
7
8
#第一种 服务器主机地址+不接密码
mysql -h localhost -u root -p
#第二种 服务器主机地址+密码
mysql -h localhost -u root -proot
#第三种 省略服务器主机地址+不接密码,默认localhost
mysql -u root -p
#第四种 省略服务器主机地址+密码,默认localhost
mysql -u root -proot

提示:mysql 为登录命令,-h 后面的参数是服务器的主机地址,在这里客户端和服务器在同一台机器上,所以输入 localhost 或者 IP 地址;-u 后面跟登录数据库的用户名称,在这里为 root;-p 后面是用户登录密码。

在 DOS 窗口下运行该命令后,系统会提示输入密码。密码输入正确以后,即可登录到 MySQL 数据库。

可以在 mysql 命令中直接加上密码,该命令为 mysql -h localhost -u root -proot。这里的 -p 后面的 root 就是密码。此处特别注意 -p 和密码之间没有空格。如果出现空格,系统将不会把后面的字符串当成密码来对待。

  1. 系统提示输入密码。(若选用第二/四种方式进行登录,则跳过本步骤)
  2. 成功登录到MySQL数据库。登录成功后进入 MySQL 初始界面,会出现“Welcome to the MySQL monitor”的欢迎语,如下图所示。

登录成功后进入 MySQL 初始界面,会出现“Welcome to the MySQL monitor”的欢迎语,然后下面还有一些说明性的语句,如图所示。

这些说明性语句介绍如下:

  • Commands end with; or\g:说明 mysql 命令行下的命令是以分号(;)或“\g”来结束的,遇到这个结束符就开始执行命令。
  • Your MySQL connection id is 3:id 表示 MySQL 数据库的连接次数。
  • Server version: 5. 7.29-log MySQL Community Server(GPL):Server version 后面说明数据库的版本,这个版本为 5.7.29。Community 表示该版本是社区版。
  • Type ‘help;’ or ‘\h’ for help:表示输入”help;“或者”\h“可以看到帮助信息。
  • Type ‘\c’ to clear the current input statement:表示遇到”\c“就清除前面的命令。

提示:当窗口中出现如上图所示的说明信息,命令提示符变为“mysql>”时,表明已经成功登录 MySQL 服务器,可以开始对数据库进行操作了。

  1. 输入命令exit,即可退出MySQL。

MySQL Command Line Client

打开 MySQL Command Line Client 进入提示输入密码的界面,如图所示。

输入正确的密码后,登录到 MySQL 软件。如果以这种方式登录 MySQL,需要保证 MySQL 服务处于启动状态。



博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为
载入天数...载入时分秒...