第02章_MySQL环境搭建(基础)

1. MySQL 的卸载

1.1 步骤1:停止 MySQL 服务

在卸载之前,先停止 MySQL8.0 的服务。按键盘上的 “Ctrl + Alt + Delete” 组合键,打开“任务管理器”对话 框,可以在“服务”列表找到“MySQL8.0” 的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停 止”选项停止 MySQL8.0 的服务,如图所示。

1.2 步骤2:软件的卸载

方式1:通过控制面板方式

卸载 MySQL8.0 的程序可以和其他桌面应用程序一样直接在“控制面板”选择“卸载程序”,并在程序列表中 找到 MySQL8.0 服务器程序,直接双击卸载即可,如图所示。这种方式删除,数据目录下的数据不会跟着删除。

方式2:通过360或电脑管家等软件卸载

方式3:通过安装包提供的卸载功能卸载

你也可以通过安装向导程序进行 MySQL8.0 服务器程序的卸载。

① 再次双击下载的 mysql-installer-community-8.0.26.0.msi 文件,打开安装向导。安装向导会自动检测已 安装的 MySQL 服务器程序。

② 选择要卸载的 MySQL 服务器程序,单击“Remove”(移除),即可进行卸载

③ 单击“Next”(下一步)按钮,确认卸载。

④ 弹出是否同时移除数据目录选择窗口。如果想要同时删除 MySQL 服务器中的数据,则勾选“Remove the data directory”,如图所示。

⑤ 执行卸载。单击“Execute”(执行)按钮进行卸载。

⑥ 完成卸载。单击“Finish”(完成)按钮即可。如果想要同时卸载 MySQL8.0 的安装向导程序,勾选“Yes,Uninstall MySQL Installer”即可,如图所示。

1.3 步骤3:残余文件的清理

如果再次安装不成功,可以卸载后对残余文件进行清理后再安装。

(1)服务目录:mysql 服务的安装目录

(2)数据目录:默认在 <font style="color:rgba(216,105,8,1);">C:\ProgramData\MySQL</font>

如果自己单独指定过数据目录,就找到自己的数据目录进行删除即可。

注意:请在卸载前做好数据备份 在操作完以后,需要重启计算机,然后进行安装即可。如果仍然安装失败,需要继续操作如下步骤4。

1.4 步骤4:清理注册表(选做)

如果前几步做了,再次安装还是失败,那么可以清理注册表。

如何打开注册表编辑器:在系统的搜索框中输入 <font style="color:rgba(216,105,8,1);">regedit</font>

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务 目录删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务 目录删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务 目录删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL服务目录删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除

注册表中的 ControlSet001, ControlSet002, 不一定是 001 和 002,可能是 ControlSet005、006 之类

1.5 步骤5:删除环境变量配置

找到 path 环境变量,将其中关于 mysql 的环境变量删除,切记不要全部删除。

例如:删除 D:\develop_tools\mysql\MySQLServer8.0.26\bin; 这个部分

2. MySQL的下载、安装、配置

2.1 MySQL 的 4 大版本

MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于 大多数普通用户。

MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的 功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。

MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server 封装成一个 Server。需要在社区版或企业版的基础上使用。

MySQL Cluster CGE 高级集群版,需付费。

  • 目前最新版本为 8.0.27 ,发布时间 2021年10月 。此前,8.0.0 在 2016.9.12日就发布了。
  • 本课程中使用 8.0.26 版本 。

此外,官方还提供了 MySQL Workbench(GUITOOL)一款专为 MySQL 设计的 图形界面管理工具。 MySQLWorkbench 又分为两个版本,分别是 社区版(MySQL Workbench OSS)、 商用版(MySQL WorkbenchSE)。

2.2 软件的下载

  1. 下载地址

MySQL官网下载:https://www.mysql.com

  1. 打开官网,点击 DOWNLOADS

然后,点击 MySQL Community(GPL) Downloads

  1. 点击 MySQL Community Server

  1. 在 General Availability(GA) Releases 中选择适合的版本

Windows 平台下提供两种安装文件:MySQL 二进制分发版(.msi安装文件)和免安装版(.zip压缩文 件)。

一般来讲,应当使用二进制分发版,因为该版本提供了图形化的安装向导过程,比其他的分发版使用起来要简单,不再需要其他工具启动就可以运行 MySQL。

  • 这里在 Windows 系统下推荐下载 MSI安装程序;点击 Go to Download Page 进行下载即可

  • Windows下的 MySQL8.0 安装有两种安装程序
    • mysql-installer-web-community-8.0.26.0.msi 下载程序大小:2.4M;安装时需要联网安装组件。
    • mysql-installer-community-8.0.26.0.msi 下载程序大小:450.7M;安装时离线安装即可。推荐。
  • 如果安装 MySQL5.7 版本的话,选择 Archives ,接着选择 MySQL5.7 的相应版本即可。这里下载最近期的 MySQL5.7.34 版本。

2.3 MySQL8.0 版本的安装

MySQL 下载完成后,找到下载文件,双击进行安装,具体操作步骤如下。

步骤1:双击下载的 mysql-installer-community-8.0.26.0.msi 文件,打开安装向导。

步骤2:打开“Choosing a Setup Type”(选择安装类型)窗口,在其中列出了 5 种安装类型,分别是 Developer Default(默认安装类型)、Server only(仅作为服务器)、Client only(仅作为客户端)、 Full(完全安装)、Custom(自定义安装)。这里选择“Custom(自定义安装)”类型按钮,单击“Next(下 一步)”按钮。

步骤3:打开“Select Products”(选择产品)窗口,可以定制需要安装的产品清单。例如,选择“MySQL Server 8.0.26-X64”后,单击“→”添加按钮,即可选择安装 MySQL 服务器,如图所示。采用通用的方法,可以添加其他你需要安装的产品。

此时如果直接“Next”(下一步),则产品的安装路径是默认的。如果想要自定义安装目录,则可以选中 对应的产品,然后在下面会出现“Advanced Options”(高级选项)的超链接。

ProgramData目录(这是一个隐藏目录)。如果自定义安装目录,请避免“中文”目录。另外,建议服务目 录和数据目录分开存放。

步骤4:在上一步选择好要安装的产品之后,单击“Next”(下一步)进入确认窗口,如图所示。单击 “Execute”(执行)按钮开始安装。

步骤5:安装完成后在“Status”(状态)列表下将显示“Complete”(安装完成),如图所示。

2.4 配置 MySQL8.0

MySQL 安装之后,需要对服务器进行配置。具体的配置步骤如下。

步骤1:在上一个小节的最后一步,单击“Next”(下一步)按钮,就可以进入产品配置窗口。

其中,“Config Type”选项用于设置服务器的类型。单击该选项右侧的下三角按钮,即可查看3个选项,如 图所示。

  • Server Machine(服务器) :该选项代表服务器,MySQL服务器可以同其他服务器应用程序一起 运行,例如Web服务器等。MySQL服务器配置成适当比例的系统资源。
  • Dedicated Machine(专用服务器) :该选项代表只运行MySQL服务的服务器。MySQL服务器配置 成使用所有可用系统资源。

步骤3:单击“Next”(下一步)按钮,打开设置授权方式窗口。其中,上面的选项是MySQL8.0提供的新的 授权方式,采用SHA256基础的密码加密方法;下面的选项是传统授权方法(保留5.x版本兼容性)。

步骤4:单击“Next”(下一步)按钮,打开设置服务器root超级管理员的密码窗口,如图所示,需要输入 两次同样的登录密码。也可以通过“Add User”添加其他用户,添加其他用户时,需要指定用户名、允许 该用户名在哪台/哪些主机上登录,还可以指定用户角色等。此处暂不添加用户,用户管理在MySQL高级 特性篇中讲解。

步骤5:单击“Next”(下一步)按钮,打开设置服务器名称窗口,如图所示。该服务名会出现在Windows 服务列表中,也可以在命令行窗口中使用该服务名进行启动和停止服务。本书将服务名设置为 “MySQL80”。如果希望开机自启动服务,也可以勾选“Start the MySQL Server at System Startup”选项(推 荐)。

下面是选择以什么方式运行服务?可以选择“Standard System Account”(标准系统用户)或者“Custom User” (自定义用户)中的一个。这里推荐前者。

步骤7:完成配置,如图所示。单击“Finish”(完成)按钮,即可完成服务器的配置。

步骤8:如果还有其他产品需要配置,可以选择其他产品,然后继续配置。如果没有,直接选择“Next” (下一步),直接完成整个安装和配置过程。

步骤9:结束安装和配置。

2.5 配置 MySQL 8.0 的环境变量

如果不配置 MySQL 环境变量,就不能在命令行直接输入 MySQL 登录命令。

下面说如何配置 MySQL 的环境变量:

步骤1:在桌面上右击【此电脑】图标,在弹出的快捷菜单中选择【属性】菜单命令。

步骤2:打开【系 统】窗口,单击【高级系统设置】链接。

步骤3:打开【系统属性】对话框,选择【高级】选项卡,然 后单击【环境变量】按钮。

步骤4:打开【环境变量】对话框,在系统变量列表中选择 path 变量。

步骤 5:单击【编辑】按钮,在【编辑环境变量】对话框中,将 MySQL 应用程序的bin目录(C:\Program Files\MySQL\MySQL Server 8.0\bin)添加到变量值中,用分号将其与其他路径分隔开。

步骤6:添加完成 之后,单击【确定】按钮,这样就完成了配置path变量的操作,然后就可以直接输入 MySQL 命令来登录 数据库了。

2.6 MySQL5.7 版本的安装、配置

  • 安装

此版本的安装过程与上述过程除了版本号不同之外,其它环节都是相同的。所以这里省略了MySQL5.7.34 版本的安装截图。

  • 配置

配置环节与 MySQL8.0 版本确有细微不同。大部分情况下直接选择“Next”即可,不影响整理使用。

这里配置 MySQL5.7 时,重点强调:与前面安装好的MySQL8.0不能使用相同的端口号。

2.7 安装失败问题

MySQL 的安装和配置是一件非常简单的事,但是在操作过程中也可能出现问题,特别是初学者。

问题1:无法打开 MySQL8.0 软件安装包或者安装过程中失败,如何解决?

在运行 MySQL8.0 软件安装包之前,用户需要确保系统中已经安装了 .Net Framework 相关软件,如果缺少 此软件,将不能正常地安装 MySQL8.0 软件。

解决方案:到这个地址 https://www.microsoft.com/en-us/download/details.aspx?id=42642 下载 Microsoft .NET Framework 4.5 并安装后,再去安装 MySQL。

另外,还要确保 Windows Installer 正常安装。windows 上安装 mysql8.0 需要操作系统提前已安装好 Microsoft Visual C++ 2015-2019。

解决方案同样是,提前到微软官网 https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0,下载相应的环境

问题2:卸载重装MySQL失败?

该问题通常是因为MySQL卸载时,没有完全清除相关信息导致的。

解决办法是,把以前的安装目录删除。如果之前安装并未单独指定过服务安装目录,则默认安装目录是 “C:\Program Files\MySQL”,彻底删除该目录。同时删除MySQL的Data目录,如果之前安装并未单独指定 过数据目录,则默认安装目录是“C:\ProgramData\MySQL”,该目录一般为隐藏目录。删除后,重新安装即可。

问题3:如何在Windows系统删除之前的未卸载干净的MySQL服务列表?

操作方法如下,在系统“搜索框”中输入“cmd”,按“Enter”(回车)键确认,弹出命令提示符界面。然后输入“sc delete MySQL服务名”,按“Enter”(回车)键,就能彻底删除残余的MySQL服务了。

3. MySQL 的登录

3.1 服务的启动与停止

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

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

3.1.1 方式1:使用图形界面工具
  • 步骤1:打开 windows 服务
    • 方式1:计算机(点击鼠标右键)→ 管理(点击)→ 服务和应用程序(点击)→ 服务(点 击)
    • 方式2:控制面板(点击)→ 系统和安全(点击)→ 管理工具(点击)→ 服务(点击)
    • 方式3:任务栏(点击鼠标右键)→ 启动任务管理器(点击)→ 服务(点击)
    • 方式4:单击【开始】菜单,在搜索框中输入“services.msc”,按 Enter 键确认
  • 步骤2:找到 MySQL80(点击鼠标右键)→ 启动或停止(点击)

3.1.2 方式2:使用命令行工具
# 启动 MySQL 服务命令:
net start MySQL服务名# 停止 MySQL 服务命令:
net stop MySQL服务名

说明:

  1. start 和 stop 后面的服务名应与之前配置时指定的服务名一致。
  2. 如果当你输入命令后,提示“拒绝服务”,请以 系统管理员身份 打开命令提示符界面重新尝试。

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

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

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

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

说明:仅限于root用户

3.2.2 登录方式2:windows 命令行
  • 格式:
mysql -h 主机名 -P 端口号 -u 用户名 -p密码
  • 举例:
mysql -h localhost -P 3306 -u root -pabc123  # 这里我设置的root用户的密码是abc123

注意:

(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

4. MySQL演示使用

4.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 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 1mysql> insert into student values(2,'李四');
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name' at row 1mysql> show create table student;

字符集的问题。

8、查看表的创建信息

show create table 表名称\G#查看student表的详细创建信息
show create table student\G
#结果如下
*************************** 1. row ***************************
+-----------+----------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                                     |
+-----------+----------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (`id` int(11) DEFAULT NULL,`name` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-----------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

上面的结果显示 student 的表格的默认字符集是“latin1”不支持中文,在 MySQL 8.0 以后不存在这个问题

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

show create database 数据库名\G#查看atguigudb数据库的详细创建信息
show create database atguigudb\G
#结果如下
*************************** 1. row ***************************Database: atguigudbCreate 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;

4.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_%';
+--------------------------+--------------------------------------------------------+
| Variable_name            | Value                                                  |
+--------------------------+--------------------------------------------------------+
| character_set_client     | gbk                                                    |
| character_set_connection | gbk                                                    |
| character_set_database   | latin1                                                 |
| character_set_filesystem | binary                                                 |
| character_set_results    | gbk                                                    |
| character_set_server     | latin1                                                 |
| character_set_system     | utf8                                                   |
| character_sets_dir       | D:\ProgramFiles\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+--------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)show variables like 'collation_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | gbk_chinese_ci    |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set, 1 warning (0.00 sec)

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

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

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

步骤3:重启服务

步骤4:查看编码命令

show variables like 'character_%';
+--------------------------+--------------------------------------------------------+
| Variable_name            | Value                                                  |
+--------------------------+--------------------------------------------------------+
| character_set_client     | gbk                                                    |
| character_set_connection | gbk                                                    |
| character_set_database   | utf8                                                   |
| character_set_filesystem | binary                                                 |
| character_set_results    | gbk                                                    |
| character_set_server     | utf8                                                   |
| character_set_system     | utf8                                                   |
| character_sets_dir       | D:\ProgramFiles\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+--------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | gbk_chinese_ci  |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set, 1 warning (0.00 sec)

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

MySQL8.0 中

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

5. MySQL 图形化管理工具

MySQL 图形化管理工具极大地方便了数据库的操作与管理,常用的图形化管理工具有:MySQL Workbench、phpMyAdmin、Navicat Preminum、MySQLDumper、SQLyog、dbeaver、MySQL ODBC Connector。

5.1 工具1. MySQL Workbench

MySQL 官方提供的图形化管理工具 MySQL Workbench 完全支持 MySQL 5.0 以上的版本。MySQL Workbench 分为社区版和商业版,社区版完全免费,而商业版则是按年收费。

MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库 管理功能。它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需 要花费大量时间的、难以变更和管理的文档任务。

下载地址:http://dev.mysql.com/downloads/workbench/。

使用:

首先,我们点击 Windows 左下角的“开始”按钮,如果你是 Win10 系统,可以直接看到所有程序。接着, 找到“MySQL”,点开,找到“MySQL Workbench 8.0 CE”。点击打开 Workbench,如下图所示:

左下角有个本地连接,点击,录入 Root 的密码,登录本地 MySQL 数据库服务器,如下图所示:

这是一个图形化的界面,我来给你介绍下这个界面。

  • 上方是菜单。左上方是导航栏,这里我们可以看到 MySQL 数据库服务器里面的数据 库,包括数据 表、视图、存储过程和函数;
  • 左下方是信息栏,可以显示上方选中的数据 库、数据表等对象的信 息。 中间上方是工作区,你可以在这里写 SQL 语句,点击上方菜单栏左边的第三个运行按 钮,就可以执 行工作区的 SQL 语句了。
  • 中间下方是输出区,用来显示 SQL 语句的运行情况,包括什么时间开始运行的、运行的 内容、运行 的输出,以及所花费的时长等信息。

5.2 工具2. Navicat

Navicat MySQL 是一个强大的 MySQL 数据库服务器管理和开发工具。它可以与任何 3.21 或以上版本的 MySQL一起工作,支持触发器、存储过程、函数、事件、视图、管理用户等,对于新手来说易学易用。 其精心设计的图形用户界面(GUI)可以让用户用一种安全简便的方式来快速方便地创建、组织、访问和 共享信息。Navicat支持中文,有免费版本提供。

下载地址:http://www.navicat.com/。

5.3 工具3. SQLyog

SQLyog 是业界著名的 Webyog 公司出品的一款简洁高效、功能强大的图形化 MySQL 数据库管理工具。 这款工具是使用C++语言开发的。该工具可以方便地创建数据库、表、视图和索引等,还可以方便地进行 插入、更新和删除等操作,同时可以方便地进行数据库、数据表的备份和还原。该工具不仅可以通过 SQL文件进行大量文件的导入和导出,还可以导入和导出XML、HTML和CSV等多种格式的数据。

下载地址:http://www.webyog.com/,读者也可以搜索中文版的下载地址。

5.4 工具4:dbeaver

DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持所有流行的数据库:MySQL、PostgreSQL、 SQLite、Oracle、DB2、SQL Server、 Sybase、MS Access、Teradata、 Firebird、Apache Hive、Phoenix、 Presto等。DBeaver 比大多数的 SQL 管理工具要轻量,而且支持中文界面。DBeaver 社区版作为一个免费开 源的产品,和其他类似的软件相比,在功能和易用性上都毫不逊色。

下载地址:https://dbeaver.io/download/

5.5 可能出现连接问题

有些图形界面工具,特别是旧版本的图形界面工具,在连接MySQL8时出现“Authentication plugin ‘caching_sha2_password’ cannot be loaded”错误。

出现这个原因是 MySQL8 之前的版本中加密规则是 mysql_native_password,而在 MySQL8 之后,加密规则是 caching_sha2_password。

解决问题方法有两种,第一种是升级图形界面工具版本,第二种是把 MySQL8 用户登录密码加密规则还原成 mysql_native_password。

第二种解决方案如下,用命令行登录 MySQL 数据库之后,执行如下命令修改用户密码加密规则并更新用户密码,这里修改用户名为“root@localhost”的用户密码规则为“mysql_native_password”,密码值为“123456”,如图所示。

#使用mysql数据库
USE mysql; #修改'root'@'localhost'用户的密码规则和密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123'; #刷新权限
FLUSH PRIVILEGES;

6. MySQL目录结构与源码

6.1 主要目录结构

MySQL 的目录结构** 说明**
bin 目录所有 MySQL 的可执行文件。如:mysql.exe
MySQLInstanceConfig.exe数据库的配置向导,在安装时出现的内容
data 目录系统数据库所在的目录
my.ini文件MySQL 的主要配置文件
c:\ProgramData\MySQL\MySQL Server 8.0\data\用户创建的数据库所在的目录

6.2 MySQL 源代码获取

首先,你要进入 MySQL 下载界面。 这里你不要选择用默认的“Microsoft Windows”,而是要通过下拉栏, 找到“Source Code”,在下面的操作系统版本里面, 选择 Windows(Architecture Independent),然后点 击下载。

接下来,把下载下来的压缩文件解压,我们就得到了 MySQL 的源代码。

MySQL 是用 C++ 开发而成的,我简单介绍一下源代码的组成。

mysql-8.0.22 目录下的各个子目录,包含了 MySQL 各部分组件的源代码:

  • sql 子目录是 MySQL 核心代码;
  • libmysql 子目录是客户端程序 API;
  • mysql-test 子目录是测试工具;
  • mysys 子目录是操作系统相关函数和辅助函数;

源代码可以用记事本打开查看,如果你有 C++ 的开发环境,也可以在开发环境中打开查看。

如上图所示,源代码并不神秘,就是普通的 C++ 代码,跟你熟悉的一样,而且有很多注释,可以帮助你 理解。阅读源代码就像在跟 MySQL 的开发人员对话一样,十分有趣。

7. 常见问题的解决

7.1 问题1:root 用户密码忘记,重置的操作

1: 通过任务管理器或者服务管理,关掉 mysqld (服务进程)

2: 通过命令行 + 特殊参数开启 mysqld mysqld – defaults-file=“D:\ProgramFiles\mysql\MySQLServer5.7\Data\my.ini” --skip-grant-tables

3: 此时,mysqld 服务进程已经打开。并且不需要权限检查

4: mysql -uroot 无密码登陆服务器。另启动一 个客户端进行

5: 修改权限表 (1) use mysql; (2)update user set authentication_string=password(‘新密 码’) where user=‘root’ and Host=‘localhost’; (3)flush privileges;

6: 通过任务管理器,关掉 mysqld 服务进 程。

7: 再次通过服务管理,打开 mysql 服务。

8: 即可用修改后的新密码登陆。

7.2 问题2:mysql命令报“不是内部或外部命令”

如果输入 mysql 命令报“不是内部或外部命令”,把 mysql 安装目录的 bin 目录配置到环境变量 path 中。如下:

7.3 问题3:错误ERROR :没有选择数据库就操作表格和数据

ERROR 1046 (3D000): No database selected
解决方案一:就是使用“USE 数据库名;”语句,这样接下来的语句就默认针对这个数据库进行操作
解决方案二:就是所有的表对象前面都加上“数据库.”

7.4 问题4:命令行客户端的字符集问题

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

原因:服务器端认为你的客户端的字符集是 utf-8,而实际上你的客户端的字符集是 GBK。

查看所有字符集:SHOW VARIABLES LIKE ‘character_set_%’;

解决方案,设置当前连接的客户端字符集 “SET NAMES GBK;”

7.5 问题5:修改数据库和表的字符编码

修改编码:

(1)先停止服务,(2)修改my.ini文件(3)重新启动服务

说明:

如果是在修改my.ini之前建的库和表,那么库和表的编码还是原来的 Latin1,要么删了重建,要么使用 alter 语句修改编码。

mysql> create database 0728db charset Latin1;
Query OK, 1 row affected (0.00 sec)
mysql> use 0728db;
Database changed
mysql> show create table student\G*************************** 1. row ***************************Table: studentCreate Table: CREATE TABLE `student` (`id` int(11) NOT NULL,`name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.00 sec)
 mysql> alter table student charset utf8; #修改表字符编码为UTF8Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> show create table student\G*************************** 1. row ***************************Table: studentCreate Table: CREATE TABLE `student` (`id` int(11) NOT NULL,`name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,  #字段仍然是latin1编码
PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf81 row in set (0.00 sec)mysql> alter table student modify name varchar(20) charset utf8; #修改字段字符编码为UTF8Query OK, 0 rows affected (0.05 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> show create table student\G*************************** 1. row ***************************Table: studentCreate Table: CREATE TABLE `student` (`id` int(11) NOT NULL,`name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf81 row in set (0.00 sec)
mysql> show create database 0728db;;+--------+-----------------------------------------------------------------+|Database| Create Database                                                 |+------+-------------------------------------------------------------------+|0728db| CREATE DATABASE `0728db` /*!40100 DEFAULT CHARACTER SET latin1 */ |+------+-------------------------------------------------------------------+1 row in set (0.00 sec)mysql> alter database 0728db charset utf8; #修改数据库的字符编码为utf8Query OK, 1 row affected (0.00 sec)+--------+-----------------------------------------------------------------+|Database| Create Database                                                 |+--------+-----------------------------------------------------------------+| 0728db | CREATE DATABASE `0728db` /*!40100 DEFAULT CHARACTER SET utf8 */ |+--------+-----------------------------------------------------------------+1 row in set (0.00 sec)

8. 章节练习

8.1 安装好 MySQL 之后在 windows 系统中哪些位置能看到 MySQL?

  • MySQL DBMS 软件的安装位置。 D:\develop_tools\MySQL\MySQL Server 8.0
  • MySQL 数据库文件的存放位置。 C:\ProgramData\MySQL\MySQL Server 8.0\Data
  • MySQL DBMS 的配置文件。 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
  • MySQL 的服务(要想通过客户端能够访问MySQL的服务器,必须保证服务是开启状态的)
  • MySQL 的 path 环境变量

8.2 卸载 MySQL 主要卸载哪几个位置的内容?

  • 使用控制面板的软件卸载,去卸载 MySQL DBMS 软件的安装位置。D:\develop_tools\MySQL\MySQL Server 8.0
  • 手动删除数据库文件。C:\ProgramData\MySQL\MySQL Server 8.0\Data
  • MySQL 的环境变量
  • MySQL 的服务进入注册表删除。( regedit )
  • 务必重启电脑

8.3 能够独立完成 MySQL8.0、MySQL5.7 版本的下载、安装、配置 (掌握)

8.4 MySQL5.7 在配置完以后,如何修改配置文件?

  • 为什么要修改my.ini文件? 默认的数据库使用的字符集是latin1。我们需要修改为:utf8
  • 修改哪些信息?
[mysql]  #大概在63行左右,在其下添加
... 
default-character-set=utf8  #默认字符集[mysqld]  # 大概在76行左右,在其下添加
...character-set-server=utf8collation-server=utf8_general_ci

修改完以后,需要重启服务。

net stop mysql服务名;net start mysql服务名;

8.5 熟悉常用的数据库管理和操作的工具

  • 方式1:windows 自带的 cmd
  • 方式2:mysql 数据库自带的命令行窗口
  • 方式3:图形化管理工具:Navicat、SQLyog、dbeaver 等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478370.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【华为】配置VXLAN构建虚拟网络实现相同网段互通(静态方式)

微思网络 厦门微思网络 组网需求 企业已经建成比较成熟的园区网络&#xff0c;但是没有专用的数据中心网络&#xff0c;所有的服务器分布在不同的部门&#xff0c;并且不具备集中放置的条件。现在用户希望在已有园区网络上构建一个虚拟网络&#xff0c;需求如下&#xff1a; 将…

linux系统运维面试题(二)(Linux System Operations Interview Questions II)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

互联网直播/点播EasyDSS视频推拉流平台视频点播有哪些技术特点?

在数字化时代&#xff0c;视频点播应用已经成为我们生活中不可或缺的一部分。监控技术与视频点播的结合正悄然改变着我们获取和享受媒体内容的方式。这一变革不仅体现在技术层面的进步&#xff0c;更深刻地影响了我们。 EasyDSS视频直播点播平台是一款高性能流媒体服务软件。E…

最新SQL Server 2022保姆级安装教程【附安装包】

目录 一、安装包下载&#xff1a; 下载链接&#xff1a;https://pan.quark.cn/s/b1c0c63d61ec 二、安装SQL Server 1.下载安装包后解压出来&#xff0c;双击打开 2.等待加载安装程序 3.点击基本安装 4.点击接受 5.点击浏览 6.在D盘新建文件夹 7.命名为【Sql Server】&…

香港大带宽服务器:助力高效网络应用

随着全球化的加速和互联网流量的持续增长&#xff0c;大带宽服务器逐渐成为企业在全球范围内运营的关键设施。香港凭借其优越的地理位置、先进的网络基础设施和政策环境&#xff0c;成为部署大带宽服务器的重要节点之一。本文将全面探讨香港大带宽服务器的核心优势、应用场景及…

设计模式:责任链实现数据流风格的数据处理

数据流风格 数据流风格是软件架构中的一种风格&#xff0c;主要是面向数据&#xff0c;用于进行流式的数据处理&#xff1b;数据流风格的代表有管道-过滤器风格和批处理序列风格&#xff0c;这里主要是指管道-过滤器风格。 管道-过滤器风格就像其名字一样&#xff0c;是以一个…

PGSQL物化视图(Materialized View)

在 PostgreSQL 中&#xff0c;物化视图&#xff08;Materialized View&#xff09;是一种特殊的数据库对象&#xff0c;它存储了查询的结果集&#xff0c;并可以定期刷新以反映基础表中的数据变化。物化视图可以提高查询性能&#xff0c;因为它减少了每次查询时重新计算数据的需…

浏览器缓存与协商缓存

1. 强缓存&#xff08;Strong Cache&#xff09; 定义 强缓存是指在缓存的资源有效期内&#xff0c;浏览器会直接使用缓存中的数据&#xff0c;而不会发起网络请求。也就是说&#xff0c;浏览器会直接从本地缓存读取资源&#xff0c;不会与服务器进行任何交互。 如何控制强缓…

JS听到了替罪的回响

这篇还是继续写JS 这是有关函数的一些内容 函数 为什么需要函数 函数是被设计为执行指定任务的代码块 函数可以把具有相同或者相似逻辑的代码包裹起来&#xff0c;通过函数调用执行这些被包裹的代码逻辑&#xff0c;这样的优势是有利于精简代码方便复用 函数使用 这是函…

【优选算法】前缀和

目录 一、[【模板】前缀和](https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf?tpId230&tqId2021480&ru/exam/oj&qru/ta/dynamic-programming/question-ranking&sourceUrl%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595…

SAP ME2L/ME2M/ME3M报表增强添加字段

SAP ME2L/ME2M/ME3M报表增强添加字段&#xff08;包含&#xff1a;LMEREPI02、SE18:ES_BADI_ME_REPORTING&#xff09; ME2L、ME2M、ME3M这三个报表的字段增强&#xff0c;核心点都在同一个结构里 SE11:MEREP_OUTTAB_PURCHDOC 在这里加字段&#xff0c;如果要加的字段是EKKO、…

破解天然气巡检挑战,构建智能运维体系

一、行业现状 天然气行业在能源领域地位举足轻重&#xff0c;其工作环境高风险&#xff0c;存在有毒有害、易爆气体及高温等情况&#xff0c;且需持续监控设备运行状态&#xff0c;人工巡检面临巨大挑战与风险。好在随着科技发展&#xff0c;防爆巡检机器人的应用为天然气管道…

TSmaster CAN/CANFD 诊断(Diagnostic_CAN)

文章目录 1、Diagnostic TP 参数配置1.1 传输层参数&#xff1a;1.2 服务层参数1.3 Seed&Key 2、基础诊断配置2.1 添加/删除 服务2.2 配置 BasicDiagnostic 服务参数 3、诊断控制台4、自动诊断流程4.1 流程用例管理4.2 配置诊断流程&#xff08;UDS Flow&#xff09;4.2.1 …

详解Servlet的使用

目录 Servlet 定义 动态页面 vs 静态页面 主要功能 Servlet的使用 创建Maven项目 引入依赖 创建目录 编写代码 打war包 部署程序 验证程序 Smart Tomcat 安装Smart Tomcat 配置Smart Tomcat插件 启动Tomcat 访问页面 路径对应关系 Servlet运行原理 Tomcat的…

mysql数据库双机互为主从设置与数据库断电无法启动处理

一、mysql数据库双机互为主从设置 前言 1.环境windows 2.数据库8.0 3.服务器1&#xff1a;192.168.12.1 4.服务器2&#xff1a;192.168.12.2 1. 设置数据库的配置文件 对文件名&#xff1a;my.ini进行修改 服务器1&#xff1a;192.168.12.1配置文件设置 [mysql] 下添加如…

strupr(arr);模拟实现(c基础)

hi , I am 36 适合对象c语言初学者 strupr(arr);函数是把arr数组变为大写字母&#xff0c;并返回arr 介绍一下strupr(arr)&#xff1b;(c基础&#xff09;-CSDN博客 现在进行My__strupr(arr);模拟实现 #include<stdio.h>//My__strupr(arr); //返回值为arr(地址),于是…

项目实战:基于深度学习的人脸表情识别系统设计与实现

大家好&#xff0c;人脸表情识别是计算机视觉领域中的一个重要研究方向&#xff0c;它涉及到对人类情感状态的理解和分析。随着深度学习技术的发展&#xff0c;基于深度学习的人脸表情识别系统因其高精度和强大的特征学习能力而受到广泛关注。本文旨在探讨基于深度学习的人脸表…

架构师思维中的人、产品和技术

架构思维主要是一种以产品和业务为驱动的顶层解决问题的思维,需要同时考虑产品、人和技术3重关系,思维点需要同时落在三维体系中。虽然架构师很多时候做的工作其实只是分和合,即所谓的系统分拆及重新组合,但综合能力要求很高,需要同时具备思维的高度和深度,在思维抽象的同…

智能显示屏插座:能否成为家庭用电安全的守护天使?

关键词&#xff1a;显示屏插座、LCD显示屏插座、LCD插座、智能计量插座、计量监测插座 最近&#xff0c;一则令人揪心的新闻在网络上疯传 在一个老旧小区里&#xff0c;由于电线老化和插座过载问题&#xff0c;引发了一场小型火灾。火势迅速蔓延&#xff0c;虽然幸运的是没有…

SAP_MM/CO模块-超详细的CK11N/CK40N取值逻辑梳理(十几种业务场景,1.76W字)

一、业务背景 财务月结完成后,对次月物料进行成本发布时,经常会提物料成本不准的问题,譬如说同一个物料,CK40N发布的成本与CK11N发布的成本对不上;再有就是因为物料有多个生产版本,多个采购价格,多个货源清单等主数据,导致CK11N发布成本的时候,跟用户理解的取数逻辑对…