centos 服务器上的 mysql 密码忘了,怎么办?
时间: 2024-01-14 07:44:51 浏览: 102
如果您忘记了 CentOS 服务器上 MySQL 的密码,可以按照以下步骤进行重置密码:
1. 停止 MySQL 服务:
```
sudo systemctl stop mysqld
```
2. 使用以下命令启动 MySQL 服务,并跳过权限检查:
```
sudo mysqld_safe --skip-grant-tables &
```
3. 连接到 MySQL 命令行:
```
sudo mysql -uroot
```
4. 使用以下命令更新 root 用户的密码:
```
USE mysql;
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
```
5. 退出 MySQL 命令行:
```
exit;
```
6. 停止 MySQL 服务:
```
sudo systemctl stop mysqld
```
7. 使用以下命令启动 MySQL 服务:
```
sudo systemctl start mysqld
```
现在您应该能够使用新密码登录 MySQL 了。请记得妥善保管您的密码。
相关问题
centos7 mysql免登录
CentOS 7 中的 MySQL 允许用户通过免登录的方式访问数据库服务,通常我们会配置 SSH 公钥对来进行自动登录。以下是简要步骤:
1. **生成SSH公钥**:
- 打开终端,输入 `ssh-keygen` 然后按回车键,接着会提示输入文件名(默认一般选择不输入即可),然后再次按回车。最后确认密码为空,无需输入。
2. **将公钥添加到MySQL用户的authorized_keys文件**:
```
ssh-copy-id -i ~/.ssh/id_rsa.pub root@your_mysql_server_ip
```
这里 `root` 是你在 MySQL 中的用户名,`your_mysql_server_ip` 是你的 MySQL 服务器的 IP 地址。如果使用的是 MySQL 的 root 用户,直接替换为 `mysql` 即可。
3. **编辑MySQL用户权限**:
-u root -p`
- 选择相应的数据库:`\use mysql;`
- 添加公钥认证:`GRANT ALL PRIVILEGES ON * . * TO 'username'@'%' IDENTIFIED BY '' USING PUBLIC KEY 'file';`
其中 `username` 是你的 MySQL 用户名,`file` 替换为 `.ssh/id_rsa` 或者 `.ssh/id_dsa` 根据之前生成的私钥文件名。
4. **保存并退出**:
输入 `exit` 退出 MySQL。
5. **重启MySQL服务**:
`sudo service mysqld restart`
现在,你可以通过 SSH 公钥登录到 MySQL 而不需要提供密码。但请注意,这是一种安全风险较高的设置,仅适用于可信的内部环境。生产环境中建议保持更强的安全措施,如使用堡垒机、SSL/TLS 加密等。另外,别忘了定期检查和更新你的 SSH 密钥和防火墙规则。
阅读全文