MySQL数据库的基本操作


安装库

Yum 库

常用命令(方便查询)

  • 创建用户 (本地和远程可登录)

    1. CREATE USER `imghub`@`127.0.0.1` IDENTIFIED BY 'passwd' PASSWORD EXPIRE NEVER;
    2. CREATE USER `imghub`@`%` IDENTIFIED BY 'passwd' PASSWORD EXPIRE NEVER;
  • 创建数据库

    CREATE DATABASE `imghub_db` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  • 授权所有权限(库级别的所有权限)

    GRANT ALL ON imghub_db.* TO 'imghub'@'%' WITH GRANT OPTION;
    
  • 刷新权限

    FLUSH PRIVILEGES;
    
  • 更多命令: ``sql -- 仅本机可登录 CREATE USERusername@127.0.0.1` IDENTIFIED BY ‘passowrd’ PASSWORD EXPIRE NEVER;

— 所有 IP 可登录 CREATE USER username@% IDENTIFIED BY ‘passowrd’ PASSWORD EXPIRE NEVER;

— 修改加密规则 (先创建用户,再修改加密规则) ALTER user ‘username’@’%’ identified with mysql_native_password by ‘password’;

— 创建数据库 (utf8mb4 / utf8mb4_general_ci 字符集) CREATE DATABASE database_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

— 授予全部权限 (建议仅授权某个库所有权限) GRANT ALL ON database_db.* TO ‘username’@’%’ WITH GRANT OPTION; — 创建数据库若遇到权限问题,需要对mysql存储目录授权mysql用户拥有权限 chown -R mysql:mysql /data/mysql

— 刷新权限 FLUSH PRIVILEGES;

— 查看用户权限 show grants for mayiic_dev;

— MySQL8.0 带过期时间用户的创建 ( 90天 ) CREATE USER username@127.0.0.1 IDENTIFIED BY ‘username’ PASSWORD EXPIRE INTERVAL 90 DAY;

— 授权方式 GRANT ALL ON . TO username@127.0.0.1 WITH GRANT OPTION; GRANT ALL ON . TO username@% WITH GRANT OPTION;

<a name="tutCY"></a>
#### 密码加密方式修改 & 验证插件修改

- 更改默认的验证插件

在 MySQL 8.0 中, caching_sha2_password 是默认的身份验证插件而不是之前版本的 mysql_native_password ,默认的密码加密方式是 sha2。<br />如果需要保持之前的验证方式并保持之前版本的密码加密方式需要在配置文件中修改, 暂不支持动态修改,需要重启生效: 
```sql
default_authentication_plugin = mysql_native_password
  • 将8.0已有的 sha2 密码修改为 sha1 的模式: ```sql

    修改加密规则为永不过期

    ALTER USER ‘username’@’%’ IDENTIFIED BY ‘passowrd’ PASSWORD EXPIRE NEVER;

更新一下用户的密码加密方式为之前版本的方式

ALTER USER ‘username’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;

刷新权限

FLUSH PRIVILEGES;


<a name="IHP6t"></a>
#### 用户授权
```sql
-- MySQL8.0:
GRANT ALL ON *.* TO `root`@`%` WITH GRANT OPTION;

-- MySQL5.7:
GRANT ALL ON *.* TO `root`@`%` IDENTIFIED BY 'rain8240' WITH GRANT OPTION;

-- 查看用户权限
SHOW GRANTS FOR username;

-- 检查角色权限
SHOW GRANTS FOR '角色'@'localhost';

修改密码

--  设置全局默认密码过期时间(天;设置 0 为不过期)
SET PERSIST default_password_lifetime = 0;

-- 设置用户禁用密码过期
CREATE USER ' username'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'username'@'localhost' PASSWORD EXPIRE NEVER;