快速阅览

占位符说明:

  • your_program_db: 你的数据库名

  • your_program_user: 你的程序专用的用户名

  • a_strong_password: 一个安全的密码

在 MySQL 控制台中依次执行以下命令:

-- 1. 创建数据库,推荐使用 utf8mb4 字符集
CREATE DATABASE your_program_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
-- 2. 创建一个新用户并设置密码
CREATE USER 'your_program_user'@'localhost' IDENTIFIED BY 'a_strong_password';
 
-- 3. 将新数据库的所有权限授予新用户
GRANT ALL PRIVILEGES ON your_program_db.* TO 'your_program_user'@'localhost';
 
-- 4. 刷新权限使之生效
FLUSH PRIVILEGES;
 
-- 5. 退出
EXIT;

操作完成后,你的程序就可以使用以下信息来连接和操作数据库了:

  • 数据库主机 (Host): localhost (或你的数据库服务器 IP)

  • 数据库名称 (Database Name): your_program_db

  • 用户名 (Username): your_program_user

  • 密码 (Password): a_strong_password

通常涉及三个核心步骤:

  1. 创建数据库 (Database):为您的程序数据提供一个独立的存储空间。

  2. 创建用户 (User):创建一个专门的、非 root 的用户来访问这个数据库,这是为了安全。

  3. 授权 (Grant Privileges):将新数据库的访问权限授予这个新用户。

下面是详细的步骤和命令。


完整步骤

第 1 步:登录到 MySQL 控制台

首先,你需要以一个有足够权限的用户(通常是 root 用户)登录到 MySQL 服务器。打开你的终端或命令提示符,然后输入以下命令:

Bash

mysql -u root -p

系统会提示你输入 root 用户的密码。正确输入后,你将看到 mysql>MariaDB [(none)]> 的提示符,表示你已成功登录。

第 2 步:创建数据库

现在,使用 CREATE DATABASE 命令来创建一个新的数据库。一个好的实践是同时指定字符集,utf8mb4 是目前最推荐的,因为它能支持包括 Emoji 在内的所有 Unicode 字符。

请将 your_program_db 替换为你想要的数据库名称。

CREATE DATABASE your_program_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

命令解释:

  • CREATE DATABASE your_program_db: 创建一个名为 your_program_db 的数据库。

  • CHARACTER SET utf8mb4: 将默认字符集设置为 utf8mb4

  • COLLATE utf8mb4_unicode_ci: 设置字符集的排序规则,utf8mb4_unicode_ci 是一种通用的、不区分大小写的排序规则。

执行成功后,你会看到 Query OK, 1 row affected 的消息。

第 3 步:创建专用的数据库用户

为了安全,强烈不推荐让你的应用程序直接使用 root 账户。我们应该为它创建一个专用的用户。

请将 your_program_user 替换为你想创建的用户名,并将 a_strong_password 替换为一个强密码。

CREATE USER 'your_program_user'@'localhost' IDENTIFIED BY 'a_strong_password';

命令解释:

  • CREATE USER 'your_program_user': 创建一个名为 your_program_user 的用户。

  • '@'localhost': 指定这个用户只能从本机 (localhost) 连接到数据库。如果你的程序和数据库不在同一台服务器上,你需要将 localhost 替换为你的程序服务器的 IP 地址,或者使用 '%' 允许从任何 IP 地址连接(注意这会带来安全风险)。

  • IDENTIFIED BY 'a_strong_password': 为这个用户设置密码。

第 4 步:为新用户授权

现在,用户和数据库都有了,但用户还没有权限访问数据库。我们需要使用 GRANT 命令来授权。

GRANT ALL PRIVILEGES ON your_program_db.* TO 'your_program_user'@'localhost';

命令解释:

  • GRANT ALL PRIVILEGES: 授予所有权限(包括 SELECT, INSERT, UPDATE, DELETE 等)。对于大多数Web应用来说,这是可以接受的。如果想更精细地控制权限,可以只授予需要的权限,例如 GRANT SELECT, INSERT, UPDATE, DELETE ON ...

  • ON your_program_db.*: 指定权限的作用范围是 your_program_db 数据库中的所有表 (*)。

  • TO 'your_program_user'@'localhost': 将这些权限赋予我们刚刚创建的用户。

第 5 步:刷新权限并退出

执行完 GRANT 命令后,最好执行一下 FLUSH PRIVILEGES 命令来让权限变更立即生效(尽管在很多新版本的 MySQL 中,GRANT 会自动刷新权限,但这仍是一个好习惯)。

FLUSH PRIVILEGES;

现在所有操作都已完成,可以退出 MySQL 控制台了。

EXIT;