# 登录MySQL
sudo mysql -u root -p
# 创建数据库与授权
— 创建数据库 codish
CREATE DATABASE IF NOT EXISTS codish
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
创建用户 joehuang(如果不存在)
CREATE USER IF NOT EXISTS ‘joehuang’@’%’ IDENTIFIED BY ‘your_password_here’;
— 或者如果只允许本地访问
— CREATE USER IF NOT EXISTS ‘joehuang’@’localhost’ IDENTIFIED BY ‘your_password_here’;
授予用户对 codish 数据库的所有权限
GRANT ALL PRIVILEGES ON codish.* TO ‘joehuang’@’%’;
— 刷新权限使更改生效
FLUSH PRIVILEGES;
— 显示用户权限
SHOW GRANTS FOR ‘joehuang’@’%’;
# 修改用户密码(通用语法)
ALTER USER ‘用户名’@’主机’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;
# 示例:修改wpuser密码
ALTER USER ‘username’@’localhost’ IDENTIFIED BY ‘MyNewStrongPass123!’;
FLUSH PRIVILEGES;
# 退出
EXIT;
# 登录MySQL
sudo mysql -u root -p
# 输入密码
# 查看所有用户和主机
SELECT User, Host FROM mysql.user;
# 查看详细信息
SELECT User, Host, plugin, authentication_string FROM mysql.user;
# 查看用户权限
SHOW GRANTS FOR ‘wpuser’@’localhost’;
# 退出
EXIT;
修改MySQL root密码的方法取决于你的MySQL版本和操作系统。以下是几种常见的方法:
方法1:已知原密码的情况下修改
“`sql
— 登录MySQL后执行
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;
“`
方法2:忘记密码时修改(安全模式)
Windows系统:
1. 停止MySQL服务:
“`cmd
net stop mysql
# 或 MySQL80(根据版本)
net stop mysql80
“`
1. 创建初始化文件 mysql-init.txt:
“`sql
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’;
“`
1. 以安全模式启动并加载初始化文件:
“`cmd
mysqld –init-file=C:\mysql-init.txt –console
“`
1. 重启MySQL服务:
“`cmd
net start mysql
“`
Linux/Mac系统:
1. 停止MySQL服务:
“`bash
sudo systemctl stop mysql
# 或
sudo service mysql stop
“`
1. 编辑配置文件:
“`bash
sudo vim /etc/my.cnf
# 或
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
“`
1. 在 [mysqld] 部分添加:
“`
skip-grant-tables
“`
1. 重启MySQL并登录:
“`bash
sudo systemctl restart mysql
# 或
sudo service mysql restart
mysql -u root
“`
1. 在MySQL中重置密码:
“`sql
— MySQL 5.7.6及以下
UPDATE mysql.user SET authentication_string=PASSWORD(‘新密码’) WHERE User=’root’;
— MySQL 5.7.6及以上
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;
“`
1. 移除配置文件的 skip-grant-tables 并重启服务
方法3:使用mysqladmin工具
“`bash
mysqladmin -u root -p’旧密码’ password ‘新密码’
“`
重要提示:
1. 密码强度要求:MySQL 8.0+有密码策略要求,确保密码足够复杂
2. 密码特殊字符:如果密码包含特殊字符,需要用引号括起来
3. 远程root访问:如果需要远程访问,也要修改相应host的密码:
“`sql
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘新密码’;
“`
验证修改是否成功:
“`bash
mysql -u root -p
# 输入新密码测试
“`
忘记root密码的完整流程(推荐):
1. 停止MySQL服务
2. 使用–skip-grant-tables启动
3. 无密码登录MySQL
4. 执行密码修改命令
5. 重启MySQL服务
注意:生产环境操作前请做好备份,并确保服务窗口期最小化。