Mysql8.x常用命令
以下是 MySQL 8 常用命令的详细操作指南,涵盖设置 Root 密码、创建用户、创建数据库等核心操作:
一、设置 Root 密码
1. 初始安装后设置 Root 密码
如果首次安装 MySQL 8 后未设置密码,使用以下命令:
ALTER USER USER() IDENTIFIED BY 'Root_123';
- 注意:密码需符合 MySQL 8 默认的复杂度要求(包含大小写字母、数字、特殊字符,长度≥8)
2. 修改已存在的 Root 密码
登录 MySQL 后执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES; -- 刷新权限使修改生效
3. 忘记 Root 密码的解决方法
- 修改配置文件
/etc/my.cnf
,添加skip-grant-tables
; - 重启 MySQL 服务;
- 无密码登录后重置密码:
UPDATE mysql.user SET authentication_string='' WHERE User='root'; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- 移除
skip-grant-tables
并重启服务
二、创建用户与授权
1. 创建用户
CREATE USER '用户名'@'主机范围' IDENTIFIED BY '密码';
- 主机范围:
localhost
:仅允许本地登录;192.168.1.%
:允许 192.168.1.0/24 网段远程登录;%
:允许任意远程主机登录(需谨慎使用)
示例:
CREATE USER 'dev_user'@'192.168.1.%' IDENTIFIED BY 'P@ssw0rd123';
2. 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机范围';
FLUSH PRIVILEGES; -- 刷新权限
- 权限列表:
ALL PRIVILEGES
:所有权限;SELECT, INSERT, UPDATE
:指定操作权限
- 数据库名:
*.*
:所有数据库和表;mydb.*
:指定数据库的所有表。
示例:
GRANT SELECT, INSERT ON mydb.* TO 'dev_user'@'192.168.1.%';
3. 查看用户权限
SHOW GRANTS FOR '用户名'@'主机范围';
三、创建数据库
1. 基本创建命令
CREATE DATABASE 数据库名
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
- 字符集推荐:
utf8mb4
支持完整的 Unicode(如 Emoji)
示例:
CREATE DATABASE mydb
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
2. 选择数据库
USE mydb; -- 切换到指定库
3. 查看所有数据库
SHOW DATABASES;
四、其他常用命令
1. 服务管理
- 启动服务
systemctl start mysqld(Linux)或 net start mysql(Windows)
- 设置开机自启:
systemctl enable mysqld。
2. 数据导入导出
- 导出数据库:
mysqldump -u root -p mydb > mydb_backup.sql
- 导入数据库:
mysql -u root -p mydb < mydb_backup.sql
3. 表操作
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
SELECT * FROM users WHERE name LIKE 'A%';
注意事项
- 安全建议:
- 避免使用
%
开放远程 Root 权限 - 定期更新密码并限制用户权限范围
- 避免使用
- 密码策略:
- 查看策略:
SHOW VARIABLES LIKE 'validate_password%';
- 修改策略:调整
validate_password.policy
参数
- 查看策略: