Docker安装
[Mac]
- 按照官方教程下载.dmg安装即可
设置国内镜像 教程,设置完后重启Docker
[Windows]
下载Docker for Windows Installer,安装
$ docker --version查看版本号- 设置国内镜像,然后重启Docker,重启Docker
$ docker run hello-world输出 Hello from Docker!
Docker安装MySQL
- 进入Docker上MySQL的主页
- 选择版本
- 使用docker run命令启动容器
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag- —name后面 some-mysql 是容器的名字
- MYSQL_ROOT_PASSWORD是密码
- tag是版本号,这里选用 5.7.27
- 再加上端口映射
-p 3306:3306 - 最终命令如下
$ docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7.27
Docker命令
$ docker ps查看容器运行状态$ docker kill <container name>关闭容器$ docker container start <container name>开启关闭的容器$ docker rm <container name>移除容器,必要时可加 -f 强制执行$ docker run ...启动新容器
Docker注意事项
- 用docker运行的容器默认不会持久化
- 如果容器被删除后,数据也会被删除
- 想要持久化,搜 【docker mysql 数据目录】
命令行连接MySQL
$ docker exec -it mysql1 bash运行后会进入容器,容器中有一个Linux系统,在这个系统中运行MySQL
MySQL命令
$ mysql -u root -p输入密码 123456进入mysql$ show databases;查看数据库列表$ use xxx;使用xxx数据库$ use sys;使用sys数据库$ show tables;查看所有表$ select * from CHARACTER;查看CHARACTER表的内容其他命令行操作
CTRL + C 中断命令, 比如输错命令
- CTRL + D 用于退出,比如退出mysql ,bash等
数据库基础知识
什么是数据库DataBase?
将大量数据保存起来 ,通过计算机加工而成可以进行高效访问的数据集合称为数据库
一般根据数据保存格式不同,数据库一般分为
比如 MySQL、PostgreSQL、SQL Server、DB2、Oracle
DBMS结构

使用的mysql命令就是一个客户端
而mysql背后还有一个server在24小时不断运行着
Node.js连接数据库
$ yarn add mysql
- test.js ```javascript var mysql = require(‘mysql’); var connection = mysql.createConnection({ host: ‘localhost’, user: ‘root’, password: ‘123456’ });
connection.connect();
connection.query(‘CREATE DATABASE IF NOT EXISTS gouson DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_520_ci;’, function (error, results, fields) { if (error) throw error; console.log(‘创建数据库’); }); connection.query(‘use gouson’)
connection.query(CREATE TABLE IF NOT EXISTS user(
name text,
age int
), function (error, results, fields) {
if (error) throw error;
console.log(‘创建表’)
console.log(results);
});
connection.end();
`$ node test.js`- 查看一下所创建的表- `$ docker exec -it mysql1 bash`- `$ mysql -u root -p`- `$ show databases;`- `$ use gouson;`- `$ show tables;`- `$ describe user;`- - 删除一个表- `$ DROP table user;`- 删除一个数据库- `$ DROP database gouson;`- 插入一条数据- `$ use gouson;`- `$ insert into user (name,age) values ('frank',18);`- 查询表内容- `$ select * from user;`- 更改数据- `$ update user set age = 70 where name = 'frank';`- 删除一条数据- `$ delete from user where name = 'frank';`<a name="k42d9"></a># MySQL数据类型- 五大类- 数字类型- 字符串类型- 时间和日期类型- JSON类型(5.7.8以上)- 其他特殊类型<a name="GzcSy"></a>## 数字类型- bit- tinyint- bool,boolean- smallint- mediumint- int- bigint- decimal- float- double- serial 等级于 BIGNIT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE<a name="ETI20"></a>## 字符串类型- char(100)- varchar(100)- binary(1024)- varbinary(1024)- blob- text- enum('v1','v2')- set('v1','v2')<a name="RxwRZ"></a>## 时间和日期类型- date- time- datetime- timestamp- yaer<a name="UELpm"></a>### IOS 8601[如何把日期输出为ISO 8601格式](https://stackoverflow.com/questions/9321809/format-date-in-mysql-select-as-iso-8601)<a name="rOxwP"></a># Sequelize.js[Sequelize ORM](https://sequelize.org/)<br />`$ yarn add --save sequelize````javascriptconst {Sequelize,Model,DataTypes} = require('sequelize');const sequelize = new Sequelize('sqliz', 'root', '123456', {// host:''dialect: 'mysql'});//创建User模型class User extends Model {}//初始化UserUser.init({name: DataTypes.STRING,age: DataTypes.INTEGER}, {sequelize,modelName: 'user' //表名});//同步到数据库sequelize.sync()//创建一条记录.then(() => User.create({name: 'janedoe',age: 15}))//打印结果.then(jane => {console.log(jane.toJSON());});
