快速阅览
占位符说明:
-
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
通常涉及三个核心步骤:
-
创建数据库 (Database):为您的程序数据提供一个独立的存储空间。
-
创建用户 (User):创建一个专门的、非 root 的用户来访问这个数据库,这是为了安全。
-
授权 (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;