✨ 注意:如下图所示,本文使用MySQL版本为8.0.30,操作系统使用的是Ubuntu22.04。对于数据库的基础应用,其他版本与操作系统安装与使用完全也参考本文的安装与使用方法。
在终端输入如下一条指令,即可下载安装MySQL:
sudo apt install mysql-server
询问希望继续安装的时候输入y
,然后等待出现如下图所示的内容即表示安装成功:
执行完上面的指令后,我们就在Ubuntu系统本地安装了一个MySQL数据库服务器了。
如下图所示,MySQL遵循客户端-服务器架构的工作模式,该模型是客户端的终端用户设计的,以使用网络服务从中央服务器访问资源。
MySQL数据库的核心是MySQL服务器,该服务器可以作为单独的程序使用,负责处理所有数据库指令、语句与命令。
数据库是用于有组织的形式存储记录的集合,其允许我们将数据保存到表、行、列与索引中,以便经常查找相关信息。MySQL将数据库实现以表的形式存储所有文件的目录,我们可以很容易地通过数据库访问与管理记录。
在安装了MySQL服务器后,它本身默认创建了一个
root
用户,其仅用于访问与管理数据库。但是有的时候需要有针对性地授予他人管理权限时,此时就需要创建非root
用户并授予他们特定数据库操作功能的权限。
MySQL用户是MySQL服务器的USER
表中的一条记录,包含MySQL账户的登陆信息、权限以及主机信息。对于使用者,必须在MySQL中创建一个用户来访问与管理数据库。 当我们创建了一个用户后,MySQL服务器就为新建的用户提供了如下功能:
在1.1中本地安装好MySQL后,系统会自动配置好登陆密码,本地登陆MySQL可以在不输入密码的情况下完成。
首先登陆MySQL数据库,命令如下所示:
sudo mysql
退出MySQL数据库的命令为exit
。
在MySQL服务器上数据库的基本操作主要包括:
(1) 数据库的显示
(2) 数据库的创建 / 删除
(3) 选择数据库
登陆MySQL数据库后,可以输入如下命令查看MySQL中已经安装好的数据库:
show databases; # 查看MySQL中已经创建好的数据库
输出如下图所示,MySQL中已经有了四个数据库。
查看当前运行数据库的指令为:
select database(); # 查看当前运行的数据库
当我们登陆MySQL后,是没有运行任何数据库的,此时代码的执行结果如下图所示,显示当前运行的数据库为NULL
:
但是,如果我们想创建一个针对特定任务的自定义数据库securities_master
,可以通过下面指令创建:
create database securities_master; # 创建自定义名称为securities_master的数据库
此时如下图所示,使用show databases;
命令就可以发现MySQL中已经创建好securities_master
数据库了:
我们还可以通过下面命令删除securities_master
数据库:
select user from mysql.user; # 删除securities_master的数据库
数据库之间的切换命令为use 数据库名
,比如下面切换到上面创建的securities_master
数据库的命令为:
use securities_master # 切换到securities_master数据库
代码执行结果如下图所示:
此时就切换到securities_master
数据库了,使用select database();
命令可以查看当前运行的数据库为securities_master
:
在MySQL服务器上用户的基本操作主要包括:
(1) 用户的显示
(2) 用户的创建 / 删除
显示当前登陆用户的命令如下所示:
select user(); # 显示当前用户
查看数据库服务器中所有用户的列表的命令如下所示:
select user from mysql.user; # 显示数据库服务器中所有用户列表
代码执行结果如下面左图所示,在Ubuntu系统中安装MySQL时候,系统默认创建了四个用户:
2、用户的创建 / 授权 / 删除
用户的创建:
创建用户的命令如下所示:
# 创建一个名称为sec_user的新用户
create user 'sec_user'@'localhost' identified by 'password';
其中,sec_user
为新创建的用户名;localhost
为主机名;此时,使用select user from mysql.user;
查看系统中的所有用户,如上面左图此时就有了sec_user
用户了。
创建用户会创建一个具有完全访问权限的新用户。所以,如果你想给用户权限,就需要使用 grant
授权语句。
如下表所示,MySQL服务器为新用户提供了多种类型的权限:
权限名称 | 描述 |
---|---|
ALL PRIVILEGES |
允许新用户的所有权限 |
CREATE |
允许用户能够创建数据库和表 |
DROP |
允许用户能够删除数据库和表 |
DELETE |
允许用户能够从特定表中删除行 |
INSERT |
允许用户能够将行插入到特定的表中 |
SELECT |
允许用户能够读取数据库 |
UPDATE |
允许用户能够更新表行 |
下面代码将所有权限赋予上面创建的sec_user
用户:
# 将所有权限赋予上面创建的`sec_user`用户
grant all privileges on securities_master.* to 'sec_user'@'localhost';
刷新权限设置,使其立即生效:
flush privileges;
使用下面的指令可以查看sec_user
用户的权限状态:
show grants for sec_user@localhost;
执行结果如下图所示:
删除上面创建的sec_user
的命令如下所示:
drop user 'sec_user'@'localhost' # 删除sec_user用户的命令