分类 Linux 下的文章

ubuntu 执行aarch64-linux-gnu-gcc -v出现 No such file or directory

在部署交叉编译工具的时候,通过-v选项时报错:

aarch64-linux-gcc -v

返回错误:

aarch64-linux-gnu-xgcc : No such file or directory.

查找报错信息提示的文件,该文件是存在的,根据网上的资料描述,是64位机和32位机不兼容的问题。
解决方式:

apt install lib32z1 lib32bz2-1.0 lib32ncurses5 -y

再次执行-v之后,返回正常。

使用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。调整的依据,主要根据数据库的状态来调试;

- 阅读剩余部分 -