终端输入命令:
# 显示允许任何来源安装
sudo spctl --master-disable
# 不显示允许任何来源安装
sudo spctl --master-enable
系统偏好设置 -> 安全性与隐私 -> 通用 -> 允许从以下位置下载的应用 -> done
终端输入命令:
# 显示允许任何来源安装
sudo spctl --master-disable
# 不显示允许任何来源安装
sudo spctl --master-enable
系统偏好设置 -> 安全性与隐私 -> 通用 -> 允许从以下位置下载的应用 -> done
Mongoose 集合命名必须最后是以s
结尾,比如你新的集合名字是:fe
,Mongoose读取的时候就会加上一个s:fes
。
如果你的集合命名是fes 则读取的时候不会在结尾处添加s
《MongoDB权威指南》第2章入门,本章会介绍一些MongoDB 的基本概念。本节为大家介绍_id和ObjectId。
MongoDB 中存储的文档必须有一个"_id" 键。这个键的值可以是任何类型的,默认是个ObjectId 对象。在一个集合里面,每个文档都有唯一的"_id" 值,来确保集合里面每个文档都能被唯一标识。如果有两个集合的话,两个集合可以都有一个值为123 的"_id" 键,但是每个集合里面只能有一个"_id" 是123 的文档。
ObjectId 是"_id" 的默认类型。它设计成轻量型的,不同的机器都能用全局唯一的同种方法方便地生成它。这是MongoDB 采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个服务器上同步自动增加主键值既费力还费时。MongoDB 从一开始就设计用来作为分布式数据库,处理多个节点是一个核心要求。后面会看到ObjectId 类型在分片环境中要容易生成得多。
ObjectId 使用12 字节的存储空间,每个字节两位十六进制数字,是一个24 位的字符串。由于看起来很长,不少人会觉得难以处理。但关键是要知道这个长长的ObjectId 是实际存储数据的两倍长。
如果快速连续创建多个ObjectId,会发现每次只有最后几位数字有变化。另外,中间的几位数字也会变化(要是在创建的过程中停顿几秒钟)。这是ObjectId 的创建方式导致的。12 字节按照如下方式生成:
前4 个字节是从标准纪元开始的时间戳,单位为秒。这会带来一些有用的属性。时间戳,与随后的. 5 个字节组合起来,提供了秒级别的唯一性。
由于时间戳在前,这意味着ObjectId 大致会按照插入的顺序排列。这对于某些方面很有用,如将其作为索引提高效率,但是这个是没有保证的,仅仅是“大致”。
这4 个字节也隐含了文档创建的时间。绝大多数驱动都会公开一个方法从ObjectId 获取这个信息。
因为使用的是当前时间,很多用户担心要对服务器进行时间同步。其实没有这个必要,因为时间戳的实际值并不重要,只要其总是不停增加就好了(每秒一次)。
接下来的3 字节是所在主机的唯一标识符。通常是机器主机名的散列值。这样就可以确保不同主机生成不同的ObjectId,不产生冲突。
为了确保在同一台机器上并发的多个进程产生的ObjectId 是唯一的,接下来的两字节来自产生ObjectId 的进程标识符(PID)。
前9 字节保证了同一秒钟不同机器不同进程产生的ObjectId 是唯一的。后3 字节就是一个自动增加的计数器,确保相同进程同一秒产生的ObjectId 也是不一样的。同一秒钟最多允许每个进程拥有2563(16 777 216)个不同的ObjectId。
前面讲到,如果插入文档的时候没有"_id" 键,系统会自动帮你创建一个。可以由MongoDB 服务器来做这件事情,但通常会在客户端由驱动程序完成。理由如下。
虽然ObjectId 设计成轻量型的,易于生成,但是毕竟生成的时候还是产生开销。在客户端生成体现了MongoDB 的设计理念:能从服务器端转移到驱动程序来做的事,就尽量转移。这种理念背后的原因是,即便是像MongoDB 这样的可扩展数据库,扩展应用层也要比扩展数据库层容易得多。将事务交由客户端来处理,就减轻了数据库扩展的负担。
在客户端生成ObjectId,驱动程序能够提供更加丰富的API。例如,驱动程序可以有自己的insert 方法,可以返回生成的ObjectId,也可以直接将其插入文档。如果驱动程序允许服务器生成ObjectId,那么将需要单独的查询,以确定插入的文档中的"_id" 值。
https://github.com/indexzero/http-server/issues/189
使用了七牛云对象存储,可能是自己当时误操作,导致上传的图片无法正常语言出现以下错误:
{
"error": "bucket is protected"
}
原因是因为开启了【原图保护】,关闭即可。
wtf,这是什么鬼错误,搜索了许久无法定位错误信息是什么导致的,无奈🤷 之余,只好走了以下七牛云的工单系统。很快(2小时)就解决了问题。特此Mark一下。
macOS Sierra 10.12.2 (16C67)
cd /usr/local/
# 列出目录文件
ls
lrwxr-xr-x 1 root wheel 30B 4 9 12:41 mysql -> mysql-5.7.17-macos10.12-x86_64
drwxr-xr-x 12 root wheel 408B 4 9 12:41 mysql-5.7.17-macos10.12-x86_64
PS:
mysql -> mysql-5.7.17-macos10.12-x86_64
是电脑目前使用的MySQL版本。
my-default.cnf
到 etc
下sudo cp /usr/local/mysql-5.7.17-macos10.12-x86_64/support-files/my-default.cnf /etc/my.cnf
etc/my.cnf
sudo vi /etc/my.cnf
sql_model
找到 sql_model 并修改值:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mysql
重启 mysql
即可。
转自:http://blog.csdn.net/fenfenguai/article/details/53941379
删除这个文件 ~/Library/Group\ Containers/UBF8T346G9.Office/User\ Content.localized/Startup.localized/Word/linkCreation.dotm
rm -rf ~/Library/Group\ Containers/UBF8T346G9.Office/User\ Content.localized/Startup.localized/Word/linkCreation.dotm
如何清除掉这些繁琐的历史记录呢:
clear();
console.clear();
Ctrl/control+L
然而执行完并没有什么用,历史记录还是会存在。
<!–more–>
然后就去stackoverflow上面找到一个解决方案特简单:
从Chrome 50起,您可以从控制台上下文菜单中使用“Clear console history(清除控制台历史记录)”。
咦,上图怎么会有两个控制台呢:
1 打开控制台(command
+ option
+ i
),控制台右上角的三个点(Customize and control DevTools
\定制和控制DevTools)
2 光标定位到弹出来的控制台,然后按快捷键 command
+ option
+ i
定制和控制DevTools的DevTools。
3 恩,就酱紫,两个都出现了。
4 然后你找到 Application tab
-> Storage
-> Local Storage
-> chrome-devtools://devtools
-> consoleHistory
这个数组里面就是所有commandLine历史记录
搞定,玩的愉快🤣,Happy New Year!
Merry Christmas!
<p data-height="316" data-theme-id="light" data-slug-hash="oYVyLd" data-default-tab="result" data-user="Keystion" data-embed-version="2" data-pen-title="Google search result page christmas themes" class="codepen">See the Pen <a href="http://codepen.io/Keystion/pen/oYVyLd/">Google search result page christmas themes</a> by Keystion (<a href="http://codepen.io/Keystion">@Keystion</a>) on <a href="http://codepen.io">CodePen</a>.</p>
<script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>
意外的发现了Google为搜索Christmas
设定的主题,特此Mark一下!
<a href="https://www.google.com/?gfe_rd=cr&ei=dx1aWLfxIKTz8AfF146oAg&gws_rd=cr&fg=1#newwindow=1&safe=active&q=christmas">尝试搜索一下:christmas</a>
vi /etc/my.cnf
在/etc/my.cnf
文件的[mysqld]
下面(换行)添加skip-grant-tables
,保存并退出(ESC
->:
->wq
->回车
)。
<!– more –>
之前
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
之后
# The MySQL server
[mysqld]
skip-grant-tables
port = 3306
socket = /tmp/mysql.sock
重启MySQL:
/etc/init.d/mysql restart
成功提示:
Stopping MySQL: [ OK ] Starting MySQL: [ OK ]
接下来继续输入:mysql
;输入
mysql> USE mysql ;
mysql> UPDATE user SET Password = password ( 'OHYnECf17EPdG6wb' ) WHERE User = 'root' ;
mysql> FLUSH PRIVILEGES;
mysql> quit ->回车
完成
重启MySQL
/etc/init.d/mysqld restart
输入mysql -u root -p
就会提示输入新密码,输入刚才设置的秘密就可以进去,说明设置成功。
此时你以为结束,并没有,记得把skip-grant-tables
从/etc/my.cnf
里面删除掉,不然即使你通过刚刚的过程修改了root用户的密码最后还是无法对数据库进行增
、删
、改
。
正文结束了,其实下面还有一些文字👇
一个漂亮的无纺布手提袋,不单单只是一个商品的包装袋。
还能够印上贵公司的标志或者广告语,消费者在购物的同时既得到了一个精美的手提袋,而商家也得到了无形的广告宣传两全其美。
适合任何公司、任何行业作为广告宣传、赠品以及外包装之用。
海创以专业的设计和制作工艺,为您做出优质的手提袋,欢迎订购!
联系一下子呗:15003209070