【MySQL学习笔记】系列三:演示使用MySQL、介绍图形化管理工具、MySQL的目录结构与源码(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【MySQL学习笔记】系列三:演示使用MySQL、介绍图形化管理工具、MySQL的目录结构与源码(一)

一、MySQL的登录


1.1 服务的启动与停止


MySQL安装完毕之后,需要启动服务器进程,不然客户端无法连接数据库。


在前面的配置过程中,已经将MySQL安装为Windows服务,并且勾选当Windows启动、停止时,MySQL也自动启动、停止。


方式1:使用图形界面工具

步骤1:打开windows服务


方式1:计算机(点击鼠标右键)→ 管理(点击)→ 服务和应用程序(点击)→ 服务(点击)

方式2:控制面板(点击)→ 系统和安全(点击)→ 管理工具(点击)→ 服务(点击)

方式3:任务栏(点击鼠标右键)→ 启动任务管理器(点击)→ 服务(点击)

方式4:单击【开始】菜单,在搜索框中输入“services.msc”,按Enter键确认

步骤2:找到MySQL80(点击鼠标右键)→ 启动或停止(点击)


df6306a20442a5a174bbd934c28203e6_35fe9765cf5848af92f63b5a53f7756c.png


方式2:使用命令行工具


# 启动 MySQL 服务命令:
net start MySQL服务名
# 停止 MySQL 服务命令:
net stop MySQL服务名


fe14c8291077b63a73aa63f2dfbaedff_ff129d71750e4d72b2a1f2b79d22e708.png


说明:


start和stop后面的服务名应与之前配置时指定的服务名一致。


如果当你输入命令后,提示“拒绝服务”,请以系统管理员身份打开命令提示符界面重新尝试。


1.2 自带客户端的登录与退出


当MySQL服务启动完成后,便可以通过客户端来登录MySQL数据库。注意:确认服务是开启的。


登录方式1:MySQL自带客户端

开始菜单 → 所有程序 → MySQL → MySQL 8.0 Command Line Client


a256800daed23be4517a9c9dc468ecb4_9304ec9026da49718d9bdb90a3a1f6bb.png


说明:仅限于root用户


登录方式2:windows命令行

格式:


mysql -h 主机名 -P 端口号 -u 用户名 -p密码


举例:


mysql -h localhost -P 3306 -u root -pabc123  # 这里我设置的root用户的密码是abc123


976d231a9bfbefac6cf9d4926583dc93_8cfcb51f4bcc43efbb6d16cd4aa02978.png


注意:


(1)-p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格。如:


mysql -hlocalhost -P3306 -uroot -pabc123


(2)密码建议在下一行输入,保证安全


mysql -h localhost -P 3306 -u root -p
Enter password:****


(3)客户端和服务器在同一台机器上,所以输入localhost或者IP地址127.0.0.1。同时,因为是连接本机:

-hlocalhost就可以省略,如果端口号没有修改:-P3306也可以省略


简写成:


mysql -u root -p
Enter password:****


连接成功后,有关于MySQL Server服务版本的信息,还有第几次连接的id标识。


也可以在命令行通过以下方式获取MySQL Server服务版本的信息:


c:\> mysql -V


c:\> mysql --version


或登录后,通过以下方式查看当前版本信息:


mysql> select version();


退出登录


exit
quit


二、MySQL演示使用


2.1 MySQL的使用演示


1、查看所有的数据库


show databases;


“information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使用的文件夹,等等


“performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。


“sys”数据库是 MySQL 系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。


“mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等


为什么 Workbench 里面我们只能看到“demo”和“sys”这 2 个数据库呢?


这是因为,Workbench 是图形化的管理工具,主要面向开发人 员,“demo”和“sys”这 2 个数据库已经够用了。如果有特殊需求,比如,需要监控 MySQL 数据库各项性能指标、直接操作 MySQL 数据库系统文件等,可以由 DBA 通过 SQL 语句,查看其它的系统数据库。


2、创建自己的数据库


create database 数据库名;
#创建atguigudb数据库,该名称不能与已经存在的数据库重名。
create database atguigudb;


3、使用自己的数据库


use 数据库名;
#使用atguigudb数据库
use atguigudb;


说明:如果没有使用use语句,后面针对数据库的操作也没有加“数据名”的限定,那么会报“ERROR 1046 (3D000): No database selected”(没有选择数据库)


使用完use语句之后,如果接下来的SQL都是针对一个数据库操作的,那就不用重复use了,如果要针对另一个数据库操作,那么要重新use。


4、查看某个库的所有表格


show tables;  #要求前面有use语句
show tables from 数据库名;


5、创建新的表格


create table 表名称(
  字段名  数据类型,
  字段名 数据类型
);


说明:如果是最后一个字段,后面就用加逗号,因为逗号的作用是分割每个字段。


#创建学生表
create table student(
  id int,
    name varchar(20)  #说名字最长不超过20个字符
);


6、查看一个表的数据


select * from 数据库表名称;


#查看学生表的数据
select * from student;


7、添加一条记录


insert into 表名称 values(值列表);
#添加两条记录到student表中
insert into student values(1,'张三');
insert into student values(2,'李四');


报错:


mysql> insert into student values(1,'张三');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1
mysql> insert into student values(2,'李四');
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name' at row 1
mysql> show create table student;


字符集的问题。


8、查看表的创建信息


show create table 表名称\G
#查看student表的详细创建信息
show create table student\G


#结果如下
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)


上面的结果显示student的表格的默认字符集是“latin1”不支持中文。


9、查看数据库的创建信息


show create database 数据库名\G
#查看atguigudb数据库的详细创建信息
show create database atguigudb\G


#结果如下
*************************** 1. row ***************************
       Database: atguigudb
Create Database: CREATE DATABASE `atguigudb` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)


上面的结果显示atguigudb数据库也不支持中文,字符集默认是latin1。


10、删除表格


drop table 表名称;


#删除学生表
drop table student;


11、删除数据库


drop database 数据库名;


#删除atguigudb数据库
drop database atguigudb;


2.2 MySQL的编码设置


MySQL5.7中

问题再现:命令行操作sql乱码问题


mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at row 1


问题解决


步骤1:查看编码命令


show variables like 'character_%';
show variables like 'collation_%';


步骤2:修改mysql的数据目录下的my.ini配置文件


[mysql]  #大概在63行左右,在其下添加
... 
default-character-set=utf8  #默认字符集
[mysqld]  # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci


注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会导致文件编码修改为“含BOM头”的编码,从而服务重启失败。


步骤3:重启服务


步骤4:查看编码命令


show variables like 'character_%';
show variables like 'collation_%';



682771e3a48ee822aad3186caa53e46e_69d9c707af9748e3a6c458b9433b8ae3.png


685f31e025f6f720904b62e3a14c4f45_1ef054bd944d431a87840255aa7b8213.png


如果是以上配置就说明对了。接着我们就可以新创建数据库、新创建数据表,接着添加包含中文的数据了。

MySQL8.0中

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL 8.0开始,数据库的默认编码改为utf8mb4,从而避免了上述的乱码问题。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
126 6
|
1月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
53 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
1月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
70 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
61 1
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
51 3
|
2月前
|
安全 关系型数据库 MySQL
Navicat工具设置MySQL权限的操作指南
通过上述步骤,您可以使用Navicat有效地为MySQL数据库设置和管理用户权限,确保数据库的安全性和高效管理。这个过程简化了数据库权限管理,使其既直观又易于操作。
341 4
|
9天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
24 4
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
23 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
82 1