docker安装mysql:8.0.21

查询可下载的镜像

docker search mysql
STARS:关注人数、OFFICIAL是否官方、AUTOMATED是否自动

拉取镜像

docker pull mysql:8.0.21 :#拉取镜像
docker images :#查看下载的镜像
docker run -di --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 #imageId#:#启动镜像,不要加/bin/bash,如果加了,进入mysql会在mysql -u root -p后登录失败。
#参数说明:
    -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
    MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
    --name 镜像运行名称,随便取名字
docker exec -it #containerid# /bin/bash:#进入镜像
docker rm #containerid##删除镜像

登录mysql

mysql -uroot -p后输入密码
--mysql操作:
mysql -V--查看windows-mysql的版本;
select version() from dual;--sql语句查询myslq版本
show databases;
use 数据空间名;
show tables;
select user();查询当前用户
select database();查询当前的数据库

DML(Data Manipulation Language)数据库操纵语言:insert、update、delete;
DQL数据库查询语言:
DDL(Data Definition Language)数据库定义语言:Create、alter、drop
DCL(Data Controle Language)数据库控制语言:commit、rollback、revoke、grant

--登录数据库
mysql -u uibs -p;
输入密码(或者root,密码是root)
/**新建用户并赋权,Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限*/
create user 'uibs'@'192.168.1.156' identified by 'uibs123';
create user 'uibs'@'%' identified by 'uibs123';
--Mysql8.0 默认采用 caching-sha2-password 加密,有可能旧的客户端不支持,可改为 mysql_native_password;
create user 'uibs'@'%' identified with mysql_native_password BY '密码';
update user set host='%' where user='root';
--给uibs用户增加所有数据库的所有权限
grant all PRIVILEGES on *.* to 'uibs'@'%';
--给uibs用户增加fmmall数据库的所有权限
grant all PRIVILEGES on fmmall.* to 'uibs'@'%';
--修改完用户权限,一定要刷新后才生效
flush privileges;
SHOW GRANTS FOR 'uibs'@'%';
--查询当前登录的用户
select user();
--查询当前使用的database
select database();

修改用户的密码
update mysql.user set password=password('root') where user='root';//mysql5.6
update user set authentication_string=password('123456') where user='root';//mysql5.7
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123123';//mysql8
--用户名和主机名要和select host,user from mysql.user;的查询结果对应
drop user '用户名'@'主机名';
--删除匿名用户,否则默认登录的都是host为loclhost的用户。
delete from mysql.user where user='';

--查询当前用户下拥有的database
show databases;
create database #dbname#;
drop database #dbname#;
user #dbname#;--选择要使用的database
--查询当前使用的database
select database();

show variables like '%time_zone%';//设置时区
set time_zone='+8:00';

alter table 表名 add primary key(列名);//增加主键
alter table tb_nofriend drop column islike;

select version();--查询版本
select engines;--查询版本支持的存储引擎
select database();--查看当前使用的数据库
select user();查询当前的用户

show databases;--查询数据空间
use mysql;--用名为mysql的数据库
select user from user;--查询当前database的所有用户。
grant all privileges on db_mall.* to 'uibs'@'localhost' identified by;


ALTER TABLE #TableName# ADDPRIMARY KEY(column_list);--设置主键
CREATE UNIQUE INDEX #IndexName# ON User(userseq,userid);--设置唯一索引
ALTER TABLE User ADD UNIQUE (USERSEQ);--设置唯一索引
CREATE INDEX IndexName ON user(userseq,userid)--创建普通索引
ALTER TABLE User ADD INDEX (USERSEQ);--设置唯一索引
--索引名IndexName可以省略,索引名自动使用列名
DROP INDEX IndexName ON user;
ALTER TABLE user DROP INDEX IndexName;

--创建表
create table student(
   id int auto_increment primary key comment ‘字段备注’,
   name varchar(255) not null,
   c_id int,
   phone char(11),
   guardian varchar(50) not null,
   qq varchar(20) not null,
   index stu_class_phone (name,c_id,phone),--联合索引
   index qq (qq)--单列索引
)engine=innodb charset=utf8;

DESC #tableName#;--查看表结构
show create table #tableName#;--查询建表语句
shwo index from #tableName#;--查询表索引
set profiling=1;SQL...;show profiling;--查看sql执行时间

问题总结

1、DG连接容器mysql,timeout

因为虚拟机的防火墙开了。关闭即可连接。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值