(1)启动docker
systemctl start docker
(2)列出docker 中的镜像
docker image ls
(3)启动(创建)mysql(其中名字和密码可以自己设)
docker run itd --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 docker.io/mysql
(4)进入mysql(识别中文)
docker exec -it mysql env LANG=C.UTF-8 bin/bash
(5)使用root用户进入mysql
mysql -u root -p
(1)重新启动docker
systemctl restart docker
通过 docker ps 可以看到此时mysql并没有运行
(2)显示所有的容器,包括之前已经关闭的
docker ps -a
可以看到之前创建好的 mysql 的 CONTAINER ID,可以通过这个来重新启动mysql
(3)重新启动mysql
docker restart CONTAINER ID
通过 docker ps 可以看到此时mysql已经开始运行
(4)进入mysql
docker exec -it mysql env LANG=C.UTF-8 bin/bash
(5)使用root用户登录
CREATE USER ‘用户名’@’%’ IDENTIFIED by ‘密码’
例:CREATE USER ‘sql_test’@’%’ IDENTIFIED by ‘123’
这里的%指可以被任何 ip 访问
注:这里区分大小写,一定要大写
刷新:flush privileges;
select user from mysql.user
grant all privileges on . to ‘lia’@’%’
drop user sql_test
drop会删除表中的数据及其他权限表的内容
也可以使用delete来删除用户,但是只会删除表中的数据,需要使用flush privileges 来刷新权限
这里有两个 sql_test,默认删除的是’XXX’@’%'这个用户
如果要删除另外一个,则使用
drop user sql_test@ip
show databases;
create database name;
use name;
即:字段不可再拆分
数据库表的每一列都是不可分割的原子数据项,而不能是集合、数组等非原子数据项
数据库表中的每一个实例或记录必须可以被唯一的区分
选取一个能区分每个实体的属性或属性组,作为实体的唯一标识
即:保证两行不重复
可以采用主键策略
字段只能依赖于主键,不能依赖于非主键
desc 表名
例:
alter table 旧表名 rename 新表名
例:alter table book_tab rename book_tabbbb
alter table 表名 modify 字段 类型/范围;
例:alter table book_tab modify book_title varchar(50);
alter table book_tab change 旧字段 新字段 新字段类型/范围;
例:alter table book_tab change book_title book_name varchar(60);
alter table book_tab add 字段名称 字段类型/范围;
例:alter table book_tab add book_publisher varchar(50);
alter table book_tab drop 字段;
例:alter table book_tab drop book_publisher;