深色模式
MySQL 学习笔记
MySQL 官网中文 —— https://www.mysql.com/cn/
什么是 MySQL
MySQL是一种全面集成、事务安全、符合 ACID 的数据库。
入门推荐
菜鸟教程 MySQL 教程:https://www.runoob.com/mysql/
MySQL数据库的安装
MySQL Community Server 版本下载地址:https://dev.mysql.com/downloads/mysql/
存储引擎
MySQL 的默认存储引擎是 InnoDB
。这个引擎是完全事务性的,并且支持外键引用。这是推荐的选择。然而,InnoDB
自动增量计数器在 MySQL 重启时丢失,因为它不记得 AUTO_INCREMENT
值,而是将其重新创建为 "max(id)+1"
。这可能会导致无意中重用 AutoField
值。
MyISAM 的主要缺点是不支持事务,也不执行外键约束。
在 WSL 安装 MySQL
安装 MySQL
Bash
mysql --version # 查看 MySQL 版本
sudo apt update # 更新 Ubuntu
sudo apt install mysql-server # 安装 MySQL
sudo service mysql start # 启动 MySQL 服务
sudo service mysql status # 检查 MySQL 服务状态
sudo cat /etc/mysql/debian.cnf # 查看 MySQL 生成的默认账号
sudo cat /var/log/mysql/error.log # 查看 MySQL 错误日志
1
2
3
4
5
6
7
2
3
4
5
6
7
启动 MySQL 服务器:sudo /etc/init.d/mysql start
启动安全脚本提示符:sudo mysql_secure_installation
运行安全脚本会更改一些不太安全的默认选项,例如远程根登录名和示例用户。 第一个提示符会询问是否要设置验证密码插件,该插件可用于测试 MySQL 密码的强度。 然后将为 MySQL 根用户设置密码,决定是否删除匿名用户,决定是否允许根用户本地和远程登录,决定是否删除测试数据库,最后决定是否立即重新加载特权表。
MySQL 使用
若要打开 MySQL 提示符,请输入:sudo mysql
或 mysql -u root -p
sql
-- 进入数据库
use mysql;
-- 查询所有用户名
select user from user;
-- 创建用户
create user 'username'@'localhost' identified by 'password';
-- 修改用户名
update user set user='new_username' where user='old_username';
rename user 'old_username'@'localhost' to 'new_username'@'localhost';
-- 降低密码验证级别
show variables like 'validate_password%';
set global validate_password.policy=LOW;
-- 修改登录密码
alter user 'dbuser'@'localhost' identified BY '123456';
-- MySQL 8.x 加密方式:caching_sha2_password
-- MySQL 5.x 加密方式:mysql_native_password
-- Django 可能需要更改为 mysql_native_password
alter user 'dbuser'@'localhost' identified with mysql_native_password by '123456';
select user,plugin from user;
-- 用户授权
grant all privileges on dbname.* to 'dbuser'@'localhost';
-- 刷新权限
flush privileges;
-- 若要查看可用的数据库
show databases;
-- 查看指定数据库的所有表
show tables;
-- 若要创建新数据库 使用 UTF-8
create database database_name character set utf8;
-- 若要删除数据库
drop database database_name;
-- 退出
exit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
MySQL 高级语句
将查询结果插入到其它表中:insert into .. select ..
使用连接更新表中某个字段数据:update .. join ..
创建表并给某个字段添加数据:create table .. select
修改表结构可以使用: alter table
语句,多个修改字段之间使用逗号分隔
卸载 MySQL
Bash
sudo apt-get autoremove --purge mysql* # 自动卸载mysql*相关的软件
sudo rm -rf /etc/mysql /var/lib/mysql # 删除掉卸载不完全留下的文件目录
sudo apt-get autoremove # 自动卸载无用的程序
sudo apt-get autoclean # 自动清理卸载后的残留信息
1
2
3
4
2
3
4