大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步。
前言简述
描述:上一篇,作者讲解归纳了数据库基础概念,以及 MySQL 基础知识、架构、数据模型,想必大家应该有所收获,本篇将继续讲解 MySQL 在 Windows、Linux 快速安装与配置,和常用的客户端连接工具(mysql、phpMyAdmin、Adminer、SQLyou、Navicat)的安装介绍,以为后续学习 MySQL 数据库操作运维提供基础实践环境。
原文链接:https://articles.zsxq.com/id_kdtdsm3i0fiw.html
原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
MySQL 部署安装
描述:作者在 Windows 系统和 Linux 系统中,分别安装 MySQL 5.7 、 MySQL 8.X 数据库,并配置好基础环境,以用于后续学习 MySQL 数据库操作运维时,针对不同 MySQL 版本,进行学习配置实践。
MySQL 在 Windows 系统快速安装与配置
描述:本小节,在 Windows 或者 Windows Server 操作系统中,使用官方提供的 zip 解压安装的方式,快速安装 MySQL 5.7.44 数据库服务,作者整理了安装操作步骤,非常简单,小白也能轻松上手。
操作步骤
步骤 01.访问 MySQL 安装包归档下载站点(https://downloads.mysql.com/archives/community/),选择?MySQL 5.7.44
?版本,选择操作系统?Microsoft Windows
,选择?x86, 64-bit
?系统架构,最后点击?Download
?按钮,下载?(mysql-5.7.44-winx64.zip)
?安装包。
weiyigeek.top-官方下载MySQL 5.7安装包图
原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
步骤 02.下载完毕后,解压到任意目录下,例如:c:data
目录,注意:你可以选择手动或者使用 PowerShell 命令。
# 创建程序目录
mkdir c:data
# 解压 MySQL 安装包
Expand-Archive -Path?".mysql-5.7.44-winx64.zip"?-DestinationPath?"C:data"
# 进入到解压目录
cd?C:datamysql-5.7.44-winx64
weiyigeek.top-解压到指定目录图
步骤 03.手动或使用Powershell命令(注意:使用管理员权限执行)添加系统环境变量并验证 MySQL 服务是否安装成功。
# 添加 MYSQL_HOME 系统环境变量
[System.Environment]::SetEnvironmentVariable("MYSQL_HOME",?"C:datamysql-5.7.44-winx64", [System.EnvironmentVariableTarget]::Machine)
# 配置 PATH 系统环境变量,将 MySQL 的bin目录添加到系统PATH环境变量中
$path?= [System.Environment]::GetEnvironmentVariable("PATH",?"User")
$path?+=?';%MYSQL_HOME%bin'
[System.Environment]::SetEnvironmentVariable("PATH",?$path,?"User")
# 新开一个 cmd 窗口,验证 mysql 服务是否安装成功
mysql.exe --version
mysql.exe ?Ver 14.14 Distrib 5.7.44,?for?Win64 (x86_64)
weiyigeek.top-设置MYSQL环境变量图
温馨提示:若测试时报 dll 文件找不到错误,请将访问??https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170?下载安装 VC++ 可再发行组件包,并重新执行上述命令。
原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
步骤 04.手动初始化 MySQL 数据库,并启动以管理员方式运行
的命令行窗口中,执行以下命令,执行完毕后将会在?C:datamysql-5.7.44-winx64
?目录下生成一个名为?data
?的文件夹,里面存放了初始化后的数据库文件。
# 初始化数据库
mysqld --initialize-insecure --user=mysql
# 查看数据库文件目录
dir C:datamysql-5.7.44-winx64data
? ? 目录: C:datamysql-5.7.44-winx64data
Mode ? ? ? ? ? ? ? ? LastWriteTime ? ? ? ? Length Name
---- ? ? ? ? ? ? ? ? ------------- ? ? ? ? ------ ----
d----- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? ? ? ?mysql
d----- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? ? ? ?performance_schema
d----- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? ? ? ?sys
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? ? 56 auto.cnf
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1703 ca-key.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1131 ca.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1131 client-cert.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1703 client-key.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1168 DESKTOP-8TP6AJH.err
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? 12582912 ibdata1
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? ?525 ib_buffer_pool
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? 50331648 ib_logfile0
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? 50331648 ib_logfile1
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1703 private_key.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? ?461 public_key.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1131 server-cert.pem
-a---- ? ? ? ? 2025/9/19 ? ? 17:47 ? ? ? ? ? 1707 server-key.pem
weiyigeek.top-手动初始化 MySQL 数据库图原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
步骤 05.手动创建 MySQL 配置文件并注册 MySQL 服务到 Windows 系统中,同样以管理员身份启动
命令行窗口,执行以下命令,返回?Service successfully installed
?说明注册成功。
# 创建 mysql 配置文件到 C:datamysql-5.7.44-winx64 目录下
$configLines = @"
[client]
port=3306
default-character-set=utf8
[mysqld]
# 设置为自己MYSQL的安装目录
basedir=C:datamysql-5.7.44-winx64
# 设置为MYSQL的数据目录
datadir=C:datamysql-5.7.44-winx64data
# 设置3306端口
port=3306
# 设置mysql的字符集为utf8(四字节)
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 跳过安全检查
skip-grant-tables
"@
Out-File -FilePath "C:datamysql-5.7.44-winx64mysql.ini" -InputObject $configLines -Encoding ascii?
# 注册 MySQL 服务到系统
mysqld -install
# Service successfully installed.
# 查看服务注册情况
Get-Service -Name mysql
? # Status ? Name ? ? ? ? ? ? ? DisplayName
? # ------ ? ---- ? ? ? ? ? ? ? -----------
? # Stopped ?MySQL ? ? ? ? ? ? ?mysql
步骤 06.设置开机自启,并启动 MySQL 服务。
# 设置开机自启
cmd.exe /c sc config mysql start= auto
# 启动 mysql 服务
PS C:Windowssystem32> net start mysql
? MySQL 服务正在启动 .
? MySQL 服务已经启动成功。
PS C:Windowssystem32> Get-Service -Name mysql
? Status ? Name ? ? ? ? ? ? ? DisplayName
? ------ ? ---- ? ? ? ? ? ? ? -----------
? Running ?MySQL ? ? ? ? ? ? ?mysql
步骤 07.登录 MySQL 服务,验证服务是否正常,并更改 root 用户密码,以及启用其远程登录,注意若服务器开启了防火墙,请将 3306/TCP 端口放行。
PS C:Windowssystem32> mysql -h 127.0.0.1 -u root
Welcome to the MySQL monitor. ?Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.44 MySQL Community Server (GPL)
.....
mysql> select user(),version();
+----------------+-----------+
| user() ? ? ? ? | version() |
+----------------+-----------+
| root@localhost | 5.7.44 ? ?|
+----------------+-----------+
1 row?inset?(0.00 sec)
# 更改 root 用户密码,这里用的是作者的博客域名作为示例。
mysql> ALTER USER?'root'@'localhost'?IDENTIFIED BY?'WeiyiGeek.top';
# 通过修改 root 的 host 为 %,使其可以远程登录。
UPDATE mysql.user SET Host='%'?WHERE User='root'?AND Host='localhost';
# 设置并刷新权限,使之生效。
GRANT ALL PRIVILEGES ON *.* TO?'root'@'%'?WITH GRANT OPTION;
FLUSH PRIVILEGES;
weiyigeek.top-验证在Windows中部署的MySQL服务图原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
步骤 08.最后若要停止并卸载 MySQL 服务,可以使用以下命令, 最后再删除MySQL目录及相关的环境变量即可。
# 停止 mysql 服务
net stop mysql?
# 卸载 mysql 服务
mysqld -remove mysql
至此,在 Windows 系统下,使用 PowerShell 命令行快速安装 MySQL 5.7.xx 数据库服务就完成了。
MySQL 在 Linux 系统快速安装与配置
描述:本小节,在华为开源的 openEuler 24.03 LTS 国产 Linux 操作系统中,使用 yum 软件源的方式,快速安装?MySQL 8.0.43
?数据库服务,当然,你也可以使用 Docker 方式安装 MySQL 服务,或者 rpm 包方式安装 MySQL 服务,都是一样的。
若还不了解 openEuler 系统或需要下载安装的童鞋,并且进行主机安全加固(满足等保要求),可参考作者以下文章链接:
- 《运维 | 国产操作系统遥遥领先? 新手必备 OpenEuler(欧拉) 开源操作系统快速安装配置指南》《等保 | OpenEuler 24.03系统主机安全加固及配置优化实践指南》
另外,想入门学习 Linux 运维的童鞋,也可参考作者《运维从业必学》专栏,或者知识星球,进行学习交流。
现在,作者假设你已经安装配置好了 openEuler 系统,接下来将以与作者一起来快速安装 MySQL 服务。
操作步骤
步骤 01.使用 root 用户登录系统,执行以下命令安装 MySQL 8.x 服务。
# 清空缓存,构建本地缓存
dnf clean all
dnf makecache
# 搜索是否有 MySQL 相关包
dnf search mysql-server
# 显示所有版本的 mysql-server 包
dnf --showduplicates list mysql-server
? Last metadata expiration check: 0:00:18 ago on Fri 19 Sep 2025 06:49:25 AM UTC.
? Available Packages
? mysql-server.x86_64 ? 8.0.35-3.oe2403 ? ?openEuler-everything
? mysql-server.x86_64 ? 8.0.37-2.oe2403 ? ?openEuler-update
? mysql-server.x86_64 ? 8.0.38-1.oe2403 ? ?openEuler-update
? mysql-server.x86_64 ? 8.0.40-1.oe2403 ? ?openEuler-update
? mysql-server.x86_64 ? 8.0.41-1.oe2403 ? ?openEuler-update
? mysql-server.x86_64 ? 8.0.42-1.oe2403 ? ?openEuler-update
? mysql-server.x86_64 ? 8.0.43-1.oe2403 ? ?openEuler-update
# 安装 mysql-server?
dnf install mysql-server
# 或者指定版本
dnf install mysql-server-8.0.43-1.oe2403
weiyigeek.top-使用系统软件源快速安装MySQL-Server图
步骤 02.安装完成后,执行以下命令启动 MySQL 服务。
# 启动 MySQL 服务
sudo systemctl start mysqld
# 设置开机自启
sudo systemctl?enable?mysqld
# 或者,一条命令完成设置开机自启&启动 MySQL 服务
# systemctl enable --now mysqld
# 查看 MySQL 服务状态
sudo systemctl status mysqld
weiyigeek.top-启动并查看服务状态图
步骤 03.进行初始化数据库密码和安全配置。
# 首先,停止 mysqld 服务?
sudo systemctl stop mysqld
# 然后,使用“跳过授权表”模式启动 MySQL(临时无密码),此命令将在后台运行
sudo mysqld --skip-grant-tables --skip-networking --user=mysql &
[1] 4002536
# 进入 MySQL shell 后执行:
FLUSH PRIVILEGES;ALTER USER?'root'@'localhost'?IDENTIFIED BY?'WeiyiGeek.top';FLUSH PRIVILEGES;EXIT;
# 或者某些 MySQL 8 版本需要用下面的语法,指定密码加密方式为 mysql_native_password,然后再设置新密码。
# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewSecurePwd8!';
# 退出回到原终端,执行以下命令 kill 掉 mysqld 相关进程。
ps -ef | grep mysqld
pkill -f mysqld
# 执行完毕后,再次启动 MySQL 服务。
sudo systemctl start mysqld
weiyigeek.top-初始化数据库密码和安全配置图原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
步骤 04.设置完毕启动 mysql 后,接下来就可以使用 root 用户以及刚才预设的密码登录 MySQL 服务了。
$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor. ?Commands end with ; or g.
Your MySQL connection id is 8
Server version: 8.0.43 Source distribution
# 查看当前用户和版本信息。
mysql> select user(),version();
+----------------+-----------+
| user() ? ? ? ? | version() |
+----------------+-----------+
| root@localhost | 8.0.43 ? ?|
+----------------+-----------+
1 row?inset?(0.00 sec)
# 查看用户信息,可知只能本地登录,且用的是 caching_sha2_password 加密方式。
mysql> select host,user, plugin, authentication_string ?from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host ? ? ?| user ? ? ? ? ? ? | plugin ? ? ? ? ? ? ? ?| authentication_string ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | caching_sha2_password |?$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED?|
| localhost | mysql.session ? ?| caching_sha2_password |?$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED?|
| localhost | mysql.sys ? ? ? ?| caching_sha2_password |?$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED?|
| localhost | root ? ? ? ? ? ? | caching_sha2_password |?$A$005$&O#&:fx%!rI%"ZmKv9R/RrZji2bojBsYVLzjFzJ/ZaVXukfXfB3Xzifc. |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
4 rows?inset?(0.00 sec)
步骤 05.接下来,我们可以通过以下命令修改 root 用户使之可以远程登录。
# 通过修改 root 的 host 为 %,使其可以远程登录。
UPDATE mysql.user SET Host='%'?WHERE User='root'?AND Host='localhost'; FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO?'root'@'%'?WITH GRANT OPTION;FLUSH PRIVILEGES;
# 查询修改后的 root 用户的 host 字段
SELECT Host, User FROM mysql.user WHERE User =?'root';
若在生产环境服务器上,更安全的做法是保留?root@localhost
?(仅供本地登录),新建远程用户 devadmin,而不是扩展 root 权限,例如:
CREATE USER?'devadmin'@'%'?IDENTIFIED BY?'StrongDev#2025';GRANT ALL PRIVILEGES ON *.* TO?'devadmin'@'%'?WITH GRANT OPTION;
步骤 06.添加防火墙规则 允许 MySQL 端口(默认3306)的访问,温馨提示:生产环境不建议接受全网段连接,请配合防火墙或 VPN 系统保障数据库数据安全。
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
至此,MySQL 服务安装配置完毕。接下来,你可以通过客户端工具测试远程登录 MySQL 服务器是否成功。
原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
MySQL 客户端工具
mysql 命令行客户端
描述:mysql 命令行客户端工具是 MySQL 自带的,无需额外安装,通常在 MySQL 安装目录的 bin 子目录下。
它也是我们在安装 MySQL 服务时,最初登录 MySQL 服务时使用的工具,使用频率高于图形化客户端,其使用帮助文档如可执行?mysql --help
?命令查看。
例1,在 Linux 系统上,通过执行如下命令来登录 MySQL 服务。
# TCP/IP 方式
mysql -h 127.0.0.1 -P 3306 -u root -p
# Socket 方式(Linux 系统)
mysql -S?'/tmp/mysql.sock'?-uroot -p123456
# 参数说明:
# -h 指定主机名或 IP
# -S 指定 socket 文件路径(仅限 Unix/Linux 系统)
# -P 指定端口号,默认是3306
# -u 指定用户名
# -p 提示输入密码,亦可指定密码(不推荐,容易泄露密码)
例2, 交互式命令登录,并执行 SQL 语句。
mysql -h 127.0.0.1 -P 3306 -u root -p 123456 -e?"show databases;"?
# 参数说明:
# -e 指定要执行的 SQL 语句
例3,设置字符集,通过管道导入数据库。
mysql -uroot -p123456 --default-character-set=utf8mb4 [数据库表] < zabbix.sql?
$zcat?zabbix.sql.gz | mysql -h 127.0.0.1 -u?'zabbix'?-p?'zabbix'?zabbix
原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
phpMyAdmin 图形化客户端
描述:phpMyAdmin 是一个基于 Web 的 MySQL/MariaDB 的管理工具,它提供了一个图形化界面来管理和操作数据库,这是一个老牌的管理工具。
官网:https://www.phpmyadmin.net/
环境:CentOS Linux release 7.6.1810 (Core) / httpd / php7.3.6
实践步骤
01.安装 httpd 和 php7.3 环境。
yum install -y httpd php
php -v
# PHP 7.3.6 (cli) (built: May 28 2019 09:32:59) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
# 此外需httpd解析php模块
$ ll /etc/httpd/modules/
-rwxr-xr-x. 1 root root 4588224 10月 31 2018 libphp7.so
02.下载 phpMyAdmin 并解压到 /var/www/html 目录下。
# 下载解压
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip
unzip /opt/phpMyAdmin-4.8.5-all-languages.zip -d /var/www/html/
mv phpMyAdmin-4.8.5-all-languages/ phpMyAdmin/
03.配置防火墙规则,允许80端口访问。
# 调整防火墙
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
04.修改配置使其可以连接到其他的机器上的 MySQL 服务器。
vim /var/www/html/phpMyAdmin/libraries/config.default.php
$cfg['AllowArbitraryServer'] =?true;?#修改为true
04.访问 phpmyadmin 页面输入MySQL服务器地址、用户名和密码。
weiyigeek.top-phpmyadmin前台
05.验证成功登录,进入 phpMyAdmin 后台,便可进行数据库管理了。
weiyigeek.top-phpmyadmin后台原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
入坑解决
问题1.phpMyAdmin - 错误缺少 mysqli 扩展 原因:由于phpmyadmin需要用到mysqli扩展,而默认php7.3未安装 解决方法:yum --enablerepo=remi-php73 install -y php php-mysqli
问题2.phpMyAdmin配置文件现在需要一个短语密码的解决方法
# 在phpMyAdmin目录中找到“config.inc.php”,然后用编辑器打开 config.inc.php (如果没有,那就找到另一个文件“config.sample.inc.php”,重命名为“config.inc.php”)搜索下面一行代码:
phpMyAdmin/config.sample.inc.php
phpMyAdmin/libraries/config.default.php
$cfg['blowfish_secret'] =?'12312321312312312@thisisasecret@2019';
问题3.变量?$cfg['TempDir']?
(./tmp/)无法访问, phpMyAdmin无法缓存模板文件,所以会运行缓慢。
mkdir tmp
chmod 777 tmp
Adminer 图形化客户端(推荐)
描述:Adminer 是一个单一 PHP 文件的全功能数据库管理工具,它提供了一个简洁的界面来管理和操作 MySQL、PostgreSQL、SQLite、MS SQL、 Elasticsearch 、 MongoDB和 Oracle 等多种类型的数据库。
官网: https://www.adminer.org/en/
主题:https://raw.githubusercontent.com/vrana/adminer/master/designs/flat/adminer.css
Adminer 特点:系统占用小,功能强大,支持多种数据库。
你可选择在 XMAPP 集成环境上安装 Adminer,或在 Linux 系统上通过Docker容器安装,如何在 OpenEuler 安装 Docker 环境,请参考《DBA | SQL 结构化查询语言介绍与学习环境准备》文章。
# 推荐使用 Docker 方式安装 Adminer。
docker run -d --name adminer --restart=always -P 8080:8080 adminer:latest
weiyigeek.top-Adminer 图形化客户端
SQLyou 图形化客户端
描述:无代理和经济有效的MySQL客户端用于管理(SQLyog)和监视性能的工具(SQLDiagnostic Managerfor MySQL (formerly Monyog)),它提供了一个简洁的界面来管理和操作 MySQL、PostgreSQL、SQLite、MS SQL 等多种类型的数据库。
官网:?https://www.webyog.com/
原文来源于,公众号《全栈工程师修炼指南》,更多知识请多多关注作者哟!
Navicat 图形化客户端(推荐)
描述:Navicat 是一个强大的数据库管理工具,它提供了一个直观的图形界面来管理和操作数据库,支持多种类型的数据库,包括 MySQL、MsSQL、Oralce、PostgreSQL、SQLite、MongoDB 等。
目前 Navicat 提供了免费的?Navicat Premium Lite
?版本,可以满足我们日常开发使用,再也不用去找什么破解版的了,大家可自行下载体验。
官网:?https://www.navicat.com.cn/download/navicat-premium-lite
操作步骤
Step 1.访问上面的官网链接,根据操作系统下载对应 Navicat 安装包,这里作者以 Linux 系统为例,Windows 环境的安装也非常简单,这里就演示了。
weiyigeek.top-下载对应 Navicat 安装包图
Step 2.下载完成后执行如下命令安装,打开程序。
chmod +x navicat17-premium-lite-cs-x86_64.AppImage
mv navicat17-premium-lite-cs-x86_64.AppImage ?/opt/navicat/
/opt/navicat/navicat17-premium-lite-cs-x86_64.AppImage
weiyigeek.top-运行Navicat图
至此,你已经掌握了如何在 Linux 系统上安装 MySQL 服务,以及如何使用不同的客户端工具来管理和操作数据库。下一章,作者将带你开启 MySQL 数据库的入门学习之旅。
加入:作者【全栈工程师修炼指南】知识星球
『?全栈工程师修炼指南』星球,主要涉及全栈工程师(Full Stack Development)实践文章,包括但不限于企业SecDevOps和网络安全等保合规、安全渗透测试、编程开发、云原生(Cloud Native)、物联网工业控制(IOT)、人工智能Ai,从业书籍笔记,人生职场认识等方面资料或文章。