MySQL8初始化、账户创建及权限分配

本文介绍MySQL8的安装步骤,包括数据目录初始化、配置文件设置及如何获取初始密码。此外,还详细讲解了如何创建用户账号、分配权限以及查看账号权限的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、MySQL8没有初始的data目录,需要在使用前进行初始化。

MySQL8下载地址:MySQL :: Download MySQL Community Server

基本配置文件 my.cnf

[mysqld]
basedir = D:\mysql
datadir = D:\mysql\data
port = 3336
character-set-server = utf8mb4
default_authentication_plugin=mysql_native_password

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4

数据库初始化:mysqld --initialize

数据库初始化后随机密码在日志文件中hostname.err,需要使用该密码登录并修改密码。

alter user 'root'@'localhost' identified by "password";
alter user 'root'@'localhost' identified with mysql_native_password by "root";
alter user 'root'@'localhost' identified with caching_sha2_password by "root";

MySQL8默认的认证插件是caching_sha2_password,很多客户端都不支持,可将默认的认证插件修改为mysql_native_password,在配置文件中配置default_authentication_plugin=mysql_native_password

2、创建账号及权限分配

#创建账号、分配权限
CREATE USER 'sky'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'sky'@'localhost' WITH GRANT OPTION;

CREATE USER 'sky'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'sky'@'%' WITH GRANT OPTION;

CREATE USER 'sky'@'localhost' IDENTIFIED BY 'password';
GRANT RELOAD,PROCESS ON *.* TO 'sky'@'localhost';

#显示账号及权限相关信息
SHOW GRANTS FOR 'sky'@'localhost';

SHOW CREATE USER 'sky'@'localhost';

MySQL账号管理相关参考:

https://dev.mysql.com/doc/refman/8.0/en/adding-users.html

https://dev.mysql.com/doc/refman/8.0/en/account-management-sql.html

### 如何解决 MySQL 初始化数据库已存在的问题 当尝试初始化 MySQL 数据库时,如果遇到“数据库已存在”的问题,通常是因为之前的安装或配置留下了残留的数据文件。以下是详细的解决方案: #### 1. 删除现有的数据目录 MySQL 的数据存储在其指定的数据目录中,默认路径通常是 `C:\ProgramData\MySQL\MySQL Server X.X\data` 或 `/var/lib/mysql/`(Linux 系统)。可以通过删除此目录中的内容来清除旧的数据库实例。 ```bash sudo rm -rf /var/lib/mysql/ ``` > **警告**: 此操作会永久删除所有现有数据库及其数据,请确保已经备份重要数据[^3]。 #### 2. 配置新的数据目录 创建一个新的空数据目录并赋予适当的权限给 MySQL 用户。 ```bash sudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql ``` #### 3. 执行初始化脚本 运行 MySQL 提供的初始化工具以重新生成必要的系统表和其他基础结构。 ```bash mysqld --initialize-insecure --user=mysql ``` 上述命令会在新数据目录中生成初始设置,并且不会为 root 用户分配临时密码[^1]。 #### 4. 启动 MySQL 服务 确认服务能够正常启动而无冲突。 ```bash sudo systemctl start mysqld ``` 或者,在 Windows 上通过命令行启动服务: ```cmd net start mysql80 ``` 如果有任何错误发生,则需排查日志文件进一步定位原因[^2]。 #### 5. 登录到 MySQL 并修改 Root 密码 一旦成功连接至服务器端口后,立即更改管理员账户的安全凭证以防未授权访问风险。 ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword'; FLUSH PRIVILEGES; ``` --- ### 注意事项 - 如果之前的操作涉及到了 OpenStack Glance 组件集成情况下的数据库初始化过程,那么还需要额外关注其配置文件内的链接地址是否正确指向当前可用的服务节点[^4]。 - 对于因主机名含有特殊字符引发的问题,建议按照官方文档指导调整机器名称后再试一次完整的部署流程[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值