1、安装镜像
查找要安装的MySQL指定版本
地址:
https://hub.docker.com/_/mysql?tab=tags&page=1&ordering=last_updated
docker pull mysql:5.7 # 拉取 mysql 5.7docker pull mysql # 拉取最新版mysql镜像
查看拉取成功与否:
sudo docker images
2、文件映射
将MySQL常用的log/data/conf映射到本虚拟机上,便于修改和维护
docker run -p 3306:3306 --name mysql \-v /shop/mysql/log:/var/log/mysql \-v /shop/mysql/data:/var/lib/mysql \-v /shop/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=shop131420\-d mysql:5.7
查看运行成功与否:
sudo docker ps
3、配置MySQL字符集
在conf目录下的my.cnf配置MySQL使用的字符码:
[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]#设置utf8mb4字符集character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect=‘SET NAMES utf8mb4’
4、连接Mysql
1).进入docker本地的MySQL:
sudo docker exec -it mysql bin/bash
2).再者使用MySQL命令行进入操作界面
mysql -uroot -pshop131420
3).MySQL权限管理
执行当前赋值所有权限,以防本地客户端无法连接Mysql数据库
grant all privileges on *.* to root@'%' identified by "shop131420";
5、开机自启
添加Mysql自动启动机制,以防服务器宕机不会重启。
docker update mysql --restart=always
6、Mysql SQL
A、Create user from Mysql
//创建lmengi用户insert into mysql.user(Host,User,Password) values("localhost","lmengi",password("lmengi"));//赋值所有权限给当前lmengi用户GRANT ALL PRIVILEGES ON *.* TO 'lmengi'@'localhost' IDENTIFIED BY 'lmengi' WITH GRANT OPTION;//刷新系统权限表flush privileges;
B、Create database from MySql
//创建数据库drop database if exists icom;create database icom DEFAULT CHARSET utf8 COLLATE utf8_general_ci;//先赋值本地权限grant select,insert,update,delete,create,drop on icom.* to iusr@localhostIdentified by "iusr123";//后赋值所有权限grant all privileges on icom.* to iusr@"%" Identified by "iusr123" WITH GRANT OPTION;use icom;FLUSH PRIVILEGES;注: icom数据库,iusr 用户名,iusr123密码
C、Create table from Mysql
drop table if exists log ;CREATE TABLE log (logId int NOT NULL AUTO_INCREMENT ,productId int NULL COMMENT '商品ID' ,UserId int NULL COMMENT '审核管理员ID' ,createTime datetime NULL COMMENT '审核时间' ,message varchar(255) NULL COMMENT '审核的理由' ,statusId int NULL COMMENT '审核状态:1,通过;2,不通过' ,PRIMARY KEY (logId)) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COMMENT='审核日志表';
注意:MyISAM和InnoDB的区别

D、Add column and drop column from table tlog
alter table tlog drop column log_size;alter table tlog add log_size varchar(32) comment '日志大小';
E、Insert into table from Mysql
insert into log (message) VALUES ("rensheng");//注意空格--单表插入多条数据INSERT INTO table(APPROVE_NAME,CORP_ID,IS_SHOWTIME)VALUES("请假单",2,1),("出差申请单",2,1),("用车申请单",2,0),("采购申请单",2,0),("报销申请单",2,0),("外出申请单",2,1),("调休申请单",2,1),("加班申请单",2,1),("补休申请单",2,1),("开会申请单",2,1);
F、Update column from table
use lmengidb;ALTER TABLE `tlog`CHANGE COLUMN `isshow` `isShow` int(11) NULL DEFAULT 0 COMMENT '0,不显示;1,显示' AFTER `log_size `;ALTER TABLE `tlog`ADD `prior` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '权重' AFTER `isshow`;
G、Mysql 查询今天、昨天、7天、近30天、本月、上一月 数据
今天:select * from 表名 where to_days(时间字段名) = to_days(now());昨天:SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 17天:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)本周:SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d'))= YEARWEEK(now());近30天:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)本月:SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )上一月:SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) ,date_format( 时间字段名, '%Y%m' ) ) =1
文章转载自拾荒的小海螺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




