安装mysql8后设置root密码

本文介绍如何实现无密码root登录MySQL,并通过命令设置新的root密码。

首先无密码root登录

sudo mysql -u root -p 两次回车

切换到mysql数据库

use mysql

设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

退出重新登录即需要密码!

安装 MySQL 8.0 的过程中设置 `root` 用户密码,具体方法取决于操作系统以及安装方式。以下是在不同环境下设置 `root` 密码的详细步骤。 ### 在 Ubuntu 上通过 APT 安装设置 root 密码 1. **使用 `sudo mysql` 登录** 在 Ubuntu 系统中,通过 `apt install mysql-server` 安装 MySQL 后,默认情况下 `root` 用户是通过本地系统认证(auth_socket)登录的,无需密码即可进入 MySQL 命令行界面。 2. **修改 root 用户身份验证方式** 需要将 `root` 用户的身份验证方式从 `auth_socket` 改为 `mysql_native_password`,并设置密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; FLUSH PRIVILEGES; ``` 3. **退出 MySQL 并重新登录** 输入 `exit;` 退出 MySQL 命令行,然后使用新密码重新登录: ```bash mysql -u root -p ``` 4. **启用远程访问(可选)** 如果需要远程访问数据库,还需更新用户权限表中的主机信息,并授予远程访问权限: ```sql UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 5. **重启 MySQL 服务** 修改配置后需重启 MySQL 服务以确保更改生效: ```bash sudo systemctl restart mysql ``` ### 在 CentOS 或手动编译安装设置 root 密码 1. **初始化数据库并跳过密码验证** 使用 `--initialize-insecure` 参数启动 MySQL 初始化过程,这将不会生成默认密码: ```bash ${MYSQL_HOME}/bin/mysqld --lower_case_table_names=1 --initialize-insecure ``` 2. **启动 MySQL 服务** 启动 MySQL 服务以便进行后续操作: ```bash ${MYSQL_HOME}/bin/mysqld_safe --user=mysql & ``` 3. **连接到 MySQL设置 root 密码** 连接到 MySQL 命令行工具,并执行以下命令设置 `root` 用户密码: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_new_password'); FLUSH PRIVILEGES; ``` 4. **退出 MySQL 并重新登录** 输入 `exit;` 退出 MySQL 命令行,然后使用新密码重新登录: ```bash mysql -u root -p ``` 5. **启用远程访问(可选)** 如果需要远程访问数据库,还需更新用户权限表中的主机信息,并授予远程访问权限: ```sql UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 6. **重启 MySQL 服务** 修改配置后需重启 MySQL 服务以确保更改生效: ```bash ${MYSQL_HOME}/bin/mysqladmin -u root -p shutdown ${MYSQL_HOME}/bin/mysqld_safe --user=mysql & ``` ### 注意事项 - **MySQL 8.0 中废弃了 `PASSWORD()` 函数** 从 MySQL 8.0 开始,旧版本中常用的 `SET PASSWORD = PASSWORD('xxx')` 方法已不再适用,应直接使用 `SET PASSWORD FOR ... = 'xxx'` 格式[^3]。 - **安全建议** 推荐使用强密码策略,并避免在生产环境中使用 `--initialize-insecure`,因为它会带来安全隐患。 - **官方文档参考** 更多关于设置和管理用户账户的信息,可以查阅 [MySQL 官方文档](https://dev.mysql.com/doc/refman/8.0/en/account-management-sql.html)[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苗清水

如有帮助,求打赏哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值