MySQL 是网站和服务器应用程序中使用最广泛的数据库管理系统之一。它是每个网站管理员都应该学习的必备工具。因此,在本教程中,我将向大家如何在 CentOS 9 Stream 服务器上安装 MySQL?
在 CentOS 9 上安装 MySQL 需要三个步骤------下载 MySQL 仓库、安装并检查其状态。我们将更详细地介绍每个步骤。
下载并准备 MySQL 存储库
在开始学习如何安装 MySQL 之前,请确保专用服务器运行在 CentOS 9 Stream 上,并且拥有 root 权限。
我们需要通过输入以下命令来更新我们的系统:
sudo yum update
系统更新完成后,就可以下载 MySQL 存储库了。也可以在此处查看其他存储库版本。
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
下载结束时,应该会看到一条确认消息,表明 .rpm 文件已保存。

现在,我们需要准备存储库,以便稍后可以从中安装 MySQL 软件包。只需输入:
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
一旦输出表明更新和安装完成,将能够安装 MySQL。
安装 MySQL
使用以下 yum install 命令安装 MySQL:
sudo yum install mysql-server
该脚本将返回软件包列表,并要求确认下载并安装它们。对于每个请求,输入 y 并按 ENTER 键 。

需要执行此操作几次,但最终会在安装结束时看到" 完成!" 消息 - 这意味着已在服务器上成功安装了 MySQL。
启动 MySQL 并检查其状态
在 CentOS 9 上安装好 MySQL 后,它不会在安装后立即自动启动。因此,需要通过以下命令手动启动它:
sudo systemctl start mysqld
MySQL 启动后将不会收到任何响应,因此要检查它是否正常工作,请使用以下命令:
sudo systemctl status mysqld
如果看到 MySQL 处于活动状态并正在运行,如上图所示,则表示已在服务器上成功安装并启动了 MySQL。
如何配置 MySQL?
现在已完成所有设置,我们将向展示使用 MySQL 时应该知道的一些有用的命令和调整。
更改 MySQL Root 用户密码
在 CentOS 9 Stream 上安装 MySQL 时,会生成一个临时的 root 密码。输入以下命令查看该密码:
sudo grep 'password' /var/log/mysqld.log
要更改它,请按照以下步骤操作:
首先,运行以下命令:
sudo mysql_secure_installation
输入临时密码,会弹出如下提示:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
现在,输入一个新的强密码。
Pro Tip
sh
A strong password is 8-12 characters long and includes numbers, special characters, uppercase, and lowercase letters.
强密码长度为 8-12 个字符,包括数字、特殊字符、大写字母和小写字母。
按照屏幕上的说明,按 y 完成设置。已成功更改 root 用户密码。
检查当前 MySQL 版本
在 CentOS 9 Sream 上安装 MySQL 后,可以通过检查其版本来测试一切是否设置正确。输入以下命令:
mysql -u root -p
输入创建的 root 密码,响应如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.20
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
重置 MySQL Root 密码
如果想重置密码,过程非常简单。按照以下步骤更改的 MySQL 根密码:
使用以下命令停止 MySQL 服务器:
sudo systemctl stop mysqld
以安全模式重新启动 MySQL,或者无需密码,输入以下命令:
sudo mysqld_safe --skip-grant-tables
如果 MySQL 服务器已启动但似乎挂起,请按 ENTER 。
使用以下命令以 root 身份重新连接到 MySQL:
mysql -uroot
要更改 root 密码,请使用以下命令:
USE MYSQL;
UPDATE USER SET PASSWORD=PASSWORD("newpassword") WHERE USER='root';
FLUSH PRIVILEGES;
EXIT
用自己的强密码替换**新密码 **。
最后,使用以下命令重新启动 MySQL:
sudo systemctl start mysqld
现在可以使用新密码登录 MySQL。
创建新的 MySQL 用户和数据库
作为 MySQL 中的根用户,可以完全访问所有数据库。
但是,如果与团队合作,则在某些情况下可能需要应用一些限制。要么必须构建新的数据库,要么创建具有自定义权限的用户。
以下是快速解决此问题的方法:
使用以下命令创建一个新的数据库:
CREATE DATABASE newdb
将 newdb 更改为数据库的名称。
通过输入以下行来创建新用户:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'
更改用户名 和密码 的变量以创建新用户。
如果想删除某个用户,请使用以下命令:
DROP USER 'username'@'localhost'
管理 MySQL 用户权限
通过输入以下内容授予新用户访问数据库的权限:
GRANT ALL PRIVILEGES ON newdb.* TO 'username'@'localhost'
还可以单独授予权限,包括:
- SELECT -- users can read through the database using the select command
SELECT -- 用户可以使用 select 命令读取数据库 - CREATE -- they can generate new tables
CREATE -- 他们可以生成新表 - DROP -- allows users to remove tables
DROP -- 允许用户删除表 - DELETE -- users can take out rows from tables
DELETE -- 用户可以从表中删除行 - INSERT -- lets users add in rows into tables
INSERT -- 允许用户在表中添加行 - UPDATE -- enable them to update the rows
UPDATE -- 使他们能够更新行 - GRANT OPTION -- they can grant or remove the privileges of other users
GRANT OPTION -- 他们可以授予或删除其他用户的权限
例如,要授予 CREATE 权限,需要输入:
GRANT CREATE ON newdb.* TO 'username'@'localhost'
另一方面,如果想删除某人的访问权限,请使用以下命令:
REVOKE permission_type ON newdb.* TO 'username'@'localhost'
还可以检查用户当前拥有的权限:
SHOW GRANTS username
最后,一旦完成了用户管理,最好使用此命令重置所有权限以使更改生效:
FLUSH PRIVILEGES
其他有用的 MySQL 命令
MySQL 还提供了其他一些有用的命令。只需输入 \h 或 help 即可查看以下列表:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
mysql>
