MySQL图像化管理工具、源码获取及常见问题的解决

5.MySQL图像化管理工具

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

工具1.MySQL Workbench

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

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

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

使用:

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

image

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

image

image

image

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

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

好了,下面我们就用Workbench实际创建一个数据库,并且导入一个Excel数据文件,来生成一个数据表。数据表是存储数据的载体,有了数据表以后,我们就能对数据进行操作了。

工具2.navicat

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

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

image

image

工具3.SQLyog

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

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

image

image

工具四:dbeaver

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

唯一需要注意的是DBeaver是用java变编程语言开发的,所以需要拥有JDK环境。如果电脑上没有JDK,在选择安装DBeaver组件时,勾选“Include Java”即可。

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

image

可能出现的连接问题:

错误号码2058:

Plugin caching_sha2_password could not be loaded

image

出现这个问题原因是MySQL 8执勤的版本加密规则是mysql_native_password,而在MySQL 8之后,加密规则是caching_sha2_password。解决文职方法有两种,第一种是升级图形界面工具版本,第二种就是把MySQL 8用户登录密码加密规则还原成mysql_native_password。

第二种解决方法如下,用命令行登录MySQL8.0数据库之后,执行如下命令,修改用户密码规则并更新用户登录密码,这里修改用户名为'root'@'localhost'的用户密码规则为mysql_native_password,密码值为你的密码,如图所示

mysql> Use mysql
Database changed
mysql> AlTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'
    -> ;
Query OK, 0 rows affected (0.71 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.29 sec)

6.MySQL目录结构与源码

6.1主要目录结构

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

6.2MySQL源代码获取

首先,你要进入MySQL下载界面。这里你不要选择用默认的“Microsoft Windows”,而是要通过下拉栏,找到“Source Code”,在下面的操作系统版本里面,选择Windows(Architecture Independent),然后点击下载。接下来,把下载下来的压缩文件压缩,我们就得到了MySQL的源代码。

下载地址:https://dev.mysql.com/downloads/mysql/

image

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

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

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

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

image

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

7.常见问题的解决

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

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

2.通过命令行+特殊参数开启mysqlId

mysql --defaults-file=“C:\ProgramData\MySQL\MySQL Server 5.7\my.ini” --skip-grant-tables

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

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

5.修改权限表

​ (1)use mysql;

​ (2)update user set authentication_string=password('新密码') where use ='root' and Host='localhost';

​ (3)flush privileges;

6.通过任务管理器,关掉mysql服务进程。

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

8.即可用修改后的新密码登录

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

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

image

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

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

问题四:命令客户端的字符集问题

mysql> insert into employees values(1003,'杰瑞');
ERROR 1366 (HY000): Incorrect string value: '\xBD\xDC\xC8\xF0' for column 'sname' at row 1

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

image

show variables like 'character_set_%';

image

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

image

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

修改编码:

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

说明:

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

mysql> create database 0728bd charset Latin1;
Query OK, 0 rows affected (0.29 sec)

image

image

习题

第一章

image

image

第二章

image

image

image

posted @ 2022-04-07 11:00  轻狂书生han  阅读(339)  评论(0编辑  收藏  举报