麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1114
2023-05-03
***安装及常用操作命令
环境:centos7
Ip: 172.16.200.48
..............................................................................................
一、Mongodb的安装与启动
1、mongo的安装
步骤 1、下载:
步骤 2、配置环境变量
# vim /etc/profile
添加一下内容:
export MONGODB_HOME=/usr/local/mongodb export PATH=$MONGODB_HOME/bin:$PATH
步骤 3、查看mongodb版本信息
# mongod -v
安装成功。
2、mongo的启动
步骤 4、创建数据库目录(***需要自建数据库文件夹)
# mkdir -p /data/mongodb # mkdir -p /data/mongodb/log # touch /data/logs/mongodb/mongodb.log
步骤 5、添加配置文件
新建mongodb.conf配置文件, 通过这个配置文件进行启动.
# vim /etc/mongodb.conf
配置文件参数说明:
mongodb的参数说明:
--dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,***通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
配置文件内容:
dbpath=/data/mongodb
logpath=/data/logs/mongodb/mongodb.log
logappend=true
port=27017
fork=true
##auth = true # 先关闭, 创建好用户在启动
步骤 6、通过配置文件启动
# mongod -f /etc/mongodb.conf ##启动
出现successfully表示启动成功了。
说明
***的启动:
不建议用service mongod start或者chkconfig mongod on来启动***,因为mongod每次启动需要带参数,不然会造成错误;
建议用mongod命令来启动,先设置好配置文件/etc/mongod.conf后,每次手动用命令启动:mongod -f /etc/mongodb.conf
或者设置开机重启: echo “mongod –f /etc/mongod.conf” >>/etc/rc.d/rc.local
***的关闭
不建议使用强制关闭***: service mongod stop
推荐使用:从mongodb的admin中关闭
> use admin switched to db admin > db.shutdownServer() server should be down...
或者mongod --shutdown
使用shutdownServer关闭***,如有***主从服务器,则在服务关闭前同步主从服务器;强制关闭则不会;
步骤 7、进入mongodb的后台管理shell
# cd /usr/local/mongodb/bin # ./mongo
步骤 8、创建数据库
> use test 创建数据库test
使用use DATABASE_NAME创建一个数据库。如果数据库不存在,则创建数据库,否则切换到指定数据库。
二、Mongo中常用命令
[root@snails ~]# ps -ef|grep mongod [root@snails ~]# mongo --host=127.0.0.1 --port=27017 *** shell version: 3.2.7 connecting to: 127.0.0.1:27017/test> show dbs #显示数据库列表> show collections #显示当前数据库中的集合(类似关系数据库中的表)> show users #显示用户> use
三、Shell中的基本操作:增删改查
1. # mongo
启动mongodb数据库
2. > db
可以查看db当前指向哪个数据库
3. 进入数据库 > use test;
使用use DATABASE_NAME使用use 数据库名就可以切换全局变量db当前指向的数据库。注意:use操作同时可以创建数据库,如果use+一个不存在的数据库名,则use执行后,***会创建对应数据库。
4. 查询数据库 > show dbs; (要显示数据库必须插入至少一条文档)
5. 删除数据库 > db.dropDatabase();
6.创建、删除集合
createCollection() 方法
db.createCollection(name, options)
在命令中, name 是要创建的集合的名称. Options 是一个文件,用于指定配置的集合
删除集合:drop() 方法
db.COLLECTION_NAME.drop() 是用来从数据库中删除一个集合
#创建集合 #进入数据库mongos> use test; mongos> db.createCollection("mycollection") { "ok" : 1 } mongos> show collections; #查看集合 mycollection #删除集合 #进入数据库mongos> use testdb; mongos> show collections; mycollection mongos> db.mycollection.drop(); true mongos> show collections;
7. 插入文档
***使用insert()或save()方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert(document)
插入文档
> use test switched to db test > db.col.insert({name:'morris',age:22}) WriteResult({ "nInserted" : 1 })
以上实例中col是集合名,如果该集合不在该数据库中,***会自动创建该集合并插入文档。
查看已插入的文档
> db.col.find() { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 }
在我们插入文档的时候,如果我们没有为该文档指定_id,mongodb将会为我们的文档自动创建一个不会重复的ObjectId
有条件的查询已插入文档
db.[集合名].find(
定义变量插入文档
> doc={name:'jack',age:20} { "name" : "jack", "age" : 20 } > db.col.insert(doc) WriteResult({ "nInserted" : 1 }) > db.col.find() { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 } { "_id" : ObjectId("56e12f49de2a8692a3099068"), "name" : "jack", "age" : 20 }
插入文档也可以使用db.col.save(document)命令。如果不指定_id 字段save()方法类似于insert()方法。如果指定_id字段,则会更新该_id的数据。
插入多个文档
如果我们在insert中传入了多个文档,mongodb只会插入***个文档,下面的代码中只插入了***个文档。
> db.user.find() > db.user.insert({name:"user1"},{name:"user2"}) > db.user.find() { "_id" : ObjectId("519cd757f83727a8baf0a8e2"), "name" : "user1" }
如果我们想一次插入多个文档,可以将多个文档组合成一个数组,这样就能够插入成功了,例子代码如下:
> db.user.find() > db.user.insert([{name:"user1"},{name:"user2"}]) > db.user.find() { "_id" : ObjectId("519cd842f83727a8baf0a8e3"), "name" : "user1" } { "_id" : ObjectId("519cd842f83727a8baf0a8e4"), "name" : "user2" }
我们可以使用javascript批量插入数据。由于mongodb shell简单的说就是一个javascript shell所以javascript代码可以在mongodb shell中运行,所以我们可以使用javascript代码进行批量插入数据,例如我们插入10个用户到user集合中,代码如下:
> for(i=1;i<=10;i++){ ... db.user.insert({_id:i,name:"user"+i,age:10+i}) ... }
8.更新文档
#显示集合文档 mongos> db.col.find(); { "_id" : ObjectId("55113e5477eaee1608881c84"), "name" : "antian" } #更新文档 mongos> db.col.update({"name":"antian"},{"name":"wuhan"}); #显示集合文档 mongos> db.col.find(); { "_id" : ObjectId("55113e5477eaee1608881c84"), "name" : "wuhan" }
9.删除文档
#删除文档内容 mongos> db.col.remove({"name":"antian"}); #删除集合:db.col.drop();
10.限制记录
mongos> db.col.find({},{"sip":1,_id:0}).limit(2);
11.排序文档
降序
mongos> db.col.find({},{"age":1,_id:0}).sort({"age":-1});
升序
mongos> db.col.find({},{"age":1,_id:0}).sort({"age":1});
12.创建索引
mongos> db.col.ensureIndex({"id":1})
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。