分类 Linux 下的文章

使用apt-get工具对Ubuntu 内核进行降级

使用 apt-get 工具对 Ubuntu 内核进行降级

当前系统及内核版本:

uname -a
Linux ubuntu 4.4.0-131-generic

搜索可下载的内核:

apt-cache search linux-image

安装指定版本的内核:

apt-get install linux-image-4.4.0-34-generic linux-image-extra-4.4.0-34-generic linux-headers-4.4.0-34-generic

- 阅读剩余部分 -

【转载】Git如何存储内容

经常使用Git,有时候就会有个疑问冒出来:Git是如何保存我提交的这些内容的呢?今天总算花点时间搜索了一番,有了个基本的概念,写下来保存。

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容,请看下图。

- 阅读剩余部分 -

MySQL的用户权限

在MySQL内部,服务器将权限信息存储在mysql数据库的授权表中(即,在名为的数据库中mysql)。

MySQL服务器在启动时将这些表的内容读取到内存中,并基于授予表的内存副本对访问控制做出决定。MySQL特权系统确保所有用户只能执行允许的操作。

作为用户,当您连接到MySQL服务器时,您的身份由连接的主机和您指定的用户名确定。在连接后发出请求时,系统将根据您的身份和您想要执行的操作授予权限。因为没有理由认为给定的用户名属于所有主机上的同一个人,所以MySQL会将您的主机名和用户名都视为识别您的身份。

当您运行连接到服务器的客户端程序时,MySQL访问控制涉及两个阶段:

  • 阶段1:服务器根据您的身份接受或拒绝连接,以及您是否可以通过提供正确的密码来验证您的身份。
  • 阶段2:假设您可以连接,服务器会检查您发出的每条语句,以确定您是否有足够的权限来执行它。例如,如果尝试从数据库中的表中选择行或从数据库中删除表,则服务器会验证您是否具有SELECT该表的DROP权限或数据库的权限。

- 阅读剩余部分 -

memcached安装及配置

一、memcached介绍

Memcached是国外社区网站LiveJournal团队开发的,高性能分布式内存缓存服务器,其目的是为了通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

  • 数据结构简单(key-value),数据存放在内存里,不支持持久化
  • 多线程
  • 基于c/s架构,协议简单
  • 基于libevent的事件处理
  • 自主内存存储处理(slab allowcation)
  • 数据过期方式:Lazy Expiration 和 LRU

二、Memcached的数据流向

  1. web从DB上获取到查询结果
  2. 把结果存储到memcached中
  3. 再次用到该结果,从缓存中读取

三、Slab Allocation的原理

- 阅读剩余部分 -

MySQL调优参考

MySQL调优可以从几个方面来做:

架构层:

做从库,实现读写分离;

系统层次

  1. 增加内存;
  2. 给磁盘做raid0或者raid5以增加磁盘的读写速度;
  3. 可以重新挂载磁盘,并加上noatime参数,这样可以减少磁盘的i/o;

MySQL本身调优:

  1. 如果未配置主从同步,可以把bin-log功能关闭,减少磁盘i/o;
  2. 在my.cnf中加上skip-name-resolve,这样可以避免由于解析主机名延迟造成mysql执行慢;
  3. 调整几个关键的buffer和cache。调整的依据,主要根据数据库的状态来调试;

- 阅读剩余部分 -

MySQL安全措施

数据库作为数据管理的平台,它的安全性首先由系统内部和网络安全两部分来决定的。对于系统管理员来说,首先要保证系统本身的安全,在安装MySQL数据时,需要对基础环境进行较好的配置。

一、修改root用户口令

缺省安装的MySQL的root用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,至少8位,由字母、数字和符号组成的不规律密码。使用MySQL自带的命令 mysqladmin修改root密码,同时也可以登陆数据库,修改数据库mysql下的user表的字段内:

mysql> update mysql.user set password=password('upassword') where user='root';
mysql> flush privileges;

二、删除默认数据库和数据库用户

一般情况下,MySQL 数据库安装在本地,并且也只需要本地的 php 脚本对 mysql 进行读取,所以很多用户不需要,尤其是默认安装的用户。

MySQL 初始化后会自动生成空用户和test库,进行安装的测试,这会对数据库的安全构成威胁,有必要全部删除,最后的状态只保留单个root即可,当然以后根据需要增加用户和数据库:

- 阅读剩余部分 -