数据库安装使用


windows本机安装

一、MongoDB下载(windows)

直接官网下载,不用注册登录,红框框选择系统和版本

点击跳转

在这里插入图片描述

安装图解

  • 开始就下一步
  • 然后碰到这一步,选择Custom,自定义
    在这里插入图片描述
  • 这里选择安装路径
    在这里插入图片描述
  • 这里一般不用动,现在选中的是本地用户服务,后面是域服务,底下的data是数据存储地址,log就不说了
    在这里插入图片描述
  • MongoDB Compass这个东西感兴趣可以去搜一下,我也就知道是个图形化工具(我还是比较喜欢navicat),我选择取消勾选
    在这里插入图片描述
  • 下面install安装一下就行了

还有一件事

别忘了将mongo路径加入环境变量!!!
这是我安装后的目录与文件
在这里插入图片描述

将这个路径复制到环境变量里
在这里插入图片描述

二、ubuntu中使用docker安装

一、安装docker

sudo apt-get install docker.io -y

查看安装版本

docker --version

二、下载镜像

安装mysql

一、下载镜像
sudo docker pull mysql
接下来直接通过镜像运行一个容器就行了
docker run --name mysqlserver -v /home/username/data/mydb/mysql : /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest

ps:
–name:容器名
-v 挂载路径(本机/容器)
-e MYSQL_ROOT_PASSWORD 服务器密码
-p 容器端口映射到服务器端口
-d 后台运行

部分命令

运行容器

sudo docker-compose -f  [docker-compose.yml] up -d

docker-compose -f yml文件 up -d
-f : 指定使用的Compose模板文件
-d : 后台运行
停止容器

docker-compose -f docker-compose.yml down -d

docker容器映射

sudo docker run -d -p 9000:9000  --restart=always  -v /var/run/docker.sock:/var/run/docker.sock  --name portainer  portainer/portainer

-p 添加映射端口

-v 宿主机目录:容器目录
/var/run/docker.sock docker守护进程

-d 后台运行

–restart always时自动重启

–nemg 命名

portainer/portainer 镜像

常用设置
  • mysql 断开链接时间

    • show variables like '%timeout%'; 查看当前断开连接时间(默认8小时60608=28800)

    • 在这里插入图片描述

    • 不知道那个起作用,都改了(临时修改)

    • set interactive_timeout=600;

    • set wait_timeout=600;

  • 修改mysql的配置文件(windows下就是my.ini文件)

  • /etc/my.cnf(或/etc/mysql/my.cnf)

    interactive_timeout=1000  # 交互连接时间
    wait_timeout=1000   # 等待超时
    max_connections=800  # 最大连接数
    
  • 更改最大连接数量 (这个知道就行,别轻易玩)

    • show variables like'%max_connections%';查看当前最大连接数量
    • set global max_connections = 2000;更改最大数量 (global全局更改)

安装mongo

下载镜像
sudo docker pull mongo
通过镜像创建容器
sudo docker run -itd --name mongo -p 27017:27017 -v /home/chang/data/mydb/mongo:/data/db mongo --auth

不同点是 --auth 这个是说使用身份验证登陆(我不加,哈哈)

安装postgresql

命令
sudo docker run --name postgres1 -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres

安装redis

命令:会有中文乱码(找到解决办法了再补上)
sudo docker run -itd --name redis -p 6379:6379  -d redis -v /home/chang/data/mydb/redis:/data --raw

不加就是这样。。。
在这里插入图片描述

删除容器
sudo docker rm 容器id

三、 本机安装

mysql

  • 先下载MySQL安装包
  • mysql官网
  • 然后,就是配置环境变量
  • 重点

my.ini 文件

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=E:\app\mysql
# 设置mysql数据库的数据的存放目录

datadir=E:\app\mysql\data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。

max_connect_errors=10

# 服务端使用的字符集默认为UTF8

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证

#mysql_native_password

default_authentication_plugin=mysql_native_password

default-time-zone='+08:00'
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3306
default-character-set=utf8

初始化数据库 (数据库bin目录下,而且要管理员模式)

mysqld --initialize --user=mysql --console
初始化正确会有这个,后面是初始密码

在这里插入图片描述

安装服务

mysqld -install

在这里插入图片描述

启动服务,进入数据库,更改密码

  • net start mysql
  • 在这里插入图片描述
  • 如果启动失败,看一下my.ini有没有配置错
  • mysql -u root -p进行登录数据库,密码就是上面的临时密码
  • 更改密码:ALTER USER root@localhost IDENTIFIED BY ‘123456’; 有可能报错的,因为新版mysql设置了密码长度,都可以在配置表里改的。有问题,找度娘,哈哈。
  • 后面我复制上面的初始密码到navicat里连接了,然后会有弹窗让你改密码。

四、数据库语法练习:

ps:mongo还是上学的时候老师教的,现在忘了不少,下面的语法算是复习一下
这里说一下,数据库安装有时候是真的痛苦,所以我都搞docker里面了,而且docker也在虚拟机了
就用这两个练习一下吧(redis先放一放)
在这里插入图片描述

MongoDB语法

  • 首先,添加用户,创建密码,这个是管理数据库用户用的
use admin

db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "root", db: "admin" } ]})
  • 然后,就可以在需要的数据库添加用户了,就改一下role的值就行,但是要先进admin数据库,输入账号密码
use admin
db.auth("admin","123456")
db.createUser( {user: "test",pwd: "123456",roles: [ { role: "dbAdmin", db: "test" } ]})
  • 登录数据库(pymongo)
# mono mongodb://用户名:密码@主机地址:端口号
mongodb://admin:123456@localhost:27017
  • 登录数据库(终端)
mongo -u username -p pwd localhost:27017/admin(用户名对应的数据库)
  • 上面是直接用管理员账号登录,这个是使用数据库用户登录(只操作一个数据库)
mongo mongodb://test:123456@localhost:27017
  • 这里说一下,要验证的话,创建容器的时候 加上–auth,容器可以删除重新运行(数据没删)
  • 插入数据(以字典格式)
db.class.insert({id:1,name:'张三',age:'17'})

对了,里的calss是数据库中的一个集合,我是使用的navicat,如果直接用命令的话
在这里插入图片描述
这里面,进到mongo容器里面,直接输入mongo就行了,show dbs是查看现在有几个数据库,前三个是系统创建的,最后一个test数据库是我自己创建的,
在这里插入图片描述
这里,db是查看现在是在那个数据库里面,show tables是查看这个数据库的所有集合
在这里插入图片描述
终端和navicat用着差不多。下面真的要说语法了

  • 创建数据库,这里,直接创建一个数据库,并不会直接显示,要向里面添加一个集合(数据),才会显示
    在这里插入图片描述
  • 删除数据库
db.dropDatabase()   # 不添加图片了,太占地方了
  • 创建集合
db.createCollection("mymongo", { capped : true, autoIndexId : true, size : 
  6142800, max : 10000 } )

这里面的是字段参数,比如capped 是一个布尔值,如果是true的话,就是一个固定集合,必须要有size(最大值=字节数),max是文档最大个数,autoIndexId 表示是否创建索引,3.2之后默认创建,而且没有这个参数了

  • 删除集合
db.demo.drop() 
  • 插入数据
db.demo.insert({"测试":“test”}) # 现在即使没有集合,插入数据也会自己创建一个集合
  • 删除数据
db.tab.remove({"测试":'test2'},1)   # 加上这个一是删除一条,不加是删除所有
  • 不过,现在有了新的写法
# 删除一条
db.inventory.deleteOne({"测试":“test2”})

# 删除多条
db.inventory.deleteMany({"测试":“tes2t”})

在这里插入图片描述 - 文档查询,看一下下面这个查询,是不是看着有点烦(这还只是一行,数据还少)
在这里插入图片描述

db.tab.find().pretty()  
  • 这样是不是看着轻松点
    在这里插入图片描述
  • 这个是添加的数据
db.tab.insert({
id:1,
name:'王二',
age:19,
hobby:[
{"球类":["排球","篮球","足球"]},
{"钓鱼":["台钓","路亚"]}
]
})
  • 这就开始高级查询了,条件查询之大于、小于,等于…

    • (>) 大于 - $gt
    • (<) 小于 - $lt
    • (>=) 大于等于 - $gte
    • (<= ) 小于等于 - $lte
  • 查询age字段大于17的数据

db.class.find({"age":{$ge:17}}).pretty()
  • 查询指定的字段
    • 查询age字段小于18,并且只显示name字段
    db.class.find({age:{$lt:18}},{name:1,_id:0}).pretty()
    
    • limit函数,根据函数传递参数,显示几条查询数据(下面就显示一条)
    db.class.find({age:{$lt:18}},{name:1,_id:0}).pretty().limit(1)
    
  • 聚合函数

先挖坑,慢慢填

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挚友灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值