1. Mysql数据库操作
    1. 数据库介绍

      什么是数据库?

      数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
      每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
      我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
      所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
      RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
      1.数据以表格的形式出现
      2.每行为各种记录名称
      3.每列为记录名称所对应的数据域
      4.许多的行和列组成一张表单
      5.若干的表单组成database

    2. mysql管理

      启动及关闭 MySQL 服务器

      首先,我们需要通过以下命令来检查MySQL服务器是否启动:

      1
      ps -ef | grep mysqld

      如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:

      1
      2
      root@host# cd /usr/bin
      ./mysqld_safe &

      如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:

      1
      2
      3
      root@host# cd /usr/bin
      ./mysqladmin -u root -p shutdown
      Enter password: ******

      MySQL 用户设置

      如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。

      以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      root@host# mysql -u root -p
      Enter password:*******
      mysql> use mysql;
      Database changed
       
      mysql> INSERT INTO user
                (host, userpassword,
                 select_priv, insert_priv, update_priv)
                 VALUES ('localhost''guest',
                 PASSWORD('guest123'), 'Y''Y''Y');
      Query OK, 1 row affected (0.20 sec)
       
      mysql> FLUSH PRIVILEGES;
      Query OK, 1 row affected (0.01 sec)
       
      mysql> SELECT host, userpassword FROM user WHERE user 'guest';
      +-----------+---------+------------------+
      | host      | user    password         |
      +-----------+---------+------------------+
      | localhost | guest | 6f8c114b58f2ce9e |
      +-----------+---------+------------------+
      1 row in set (0.00 sec)

      在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.

      注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string

      注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

      如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

      你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:

      Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv

      另外一种添加用户的方法为通过SQL的 GRANT 命令,你下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      root@host# mysql -u root -p password;
      Enter password:*******
      mysql> use mysql;
      Database changed
       
      mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
          -> ON TUTORIALS.*
          -> TO 'zara'@'localhost'
          -> IDENTIFIED BY 'zara123';

      /etc/my.cnf 文件配置

      一般情况下,你不需要修改该配置文件,该文件默认配置如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      [mysqld]
      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
       
      [mysql.server]
      user=mysql
      basedir=/var/lib
       
      [safe_mysqld]
      err-log=/var/log/mysqld.log
      pid-file=/var/run/mysqld/mysqld.pid

      管理MySQL的命令

      以下列出了使用Mysql数据库过程中常用的命令:

      • USE 数据库名 :选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

      • SHOW DATABASES: 列出 MySQL 数据库管理系统的数据库列表。

      • SHOW TABLES: #显示指定数据库的所有表,使用该命令前需要使用 use命令来选择要操作的数据库。

      • SHOW COLUMNS FROM 数据表: #显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

      • create database testdb charset "utf8"; #创建一个叫testdb的数据库,且让其支持中文

      • drop database testdb; #删除数据库

      • SHOW INDEX FROM 数据表:显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

      3

      mysql 常用命令

      MySQL 创建数据表

      语法

      1
      CREATE TABLE table_name (column_name column_type);

      创建一个student表

      1
      2
      3
      4
      5
      6
      7
      create table student(
         stu_id INT NOT NULL AUTO_INCREMENT,
         name CHAR(32) NOT NULL,
         age  INT NOT NULL,
         register_date DATE,
         PRIMARY KEY ( stu_id )
      );

      实例解析:

      • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
      • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
      • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

      MySQL 插入数据

      语法

      1
      2
      3
      INSERT INTO table_name ( field1, field2,...fieldN )
                             VALUES
                             ( value1, value2,...valueN );

      插入数据

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      mysql> insert into student (name,age,register_date) values ("alex li",22,"2016-03-4")
          -> ;
      Query OK, 1 row affected (0.00 sec)
       
      mysql> select from student;
      +--------+---------+-----+---------------+
      | stu_id | name    | age | register_date |
      +--------+---------+-----+---------------+
      |      1 | alex li |  22 | 2016-03-04    |
      +--------+---------+-----+---------------+
      1 row in set (0.00 sec)

      MySQL 查询数据

      语法

      1
      2
      3
      4
      SELECT column_name,column_name
      FROM table_name
      [WHERE Clause]
      [OFFSET M ][LIMIT N]
      • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
      • SELECT 命令可以读取一条或者多条记录。
      • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
      • 你可以使用 WHERE 语句来包含任何条件。
      • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
      • 你可以使用 LIMIT 属性来设定返回的记录数。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      mysql> select from student limit 3 offset 2;
      +--------+---------+-----+---------------+
      | stu_id | name    | age | register_date |
      +--------+---------+-----+---------------+
      |      3 | alex li |  24 | 2016-03-04    |
      |      4 | alex li |  24 | 2016-03-01    |
      |      5 | alex li |  24 | 2016-03-02    |
      +--------+---------+-----+---------------+
      rows in set (0.00 sec)
      比如这个SQL ,limit后面跟的是3条数据,offset后面是从第3条开始读取
       
      mysql> select from student limit 3 ,1;
      +--------+---------+-----+---------------+
      | stu_id | name    | age | register_date |
      +--------+---------+-----+---------------+
      |      4 | alex li |  24 | 2016-03-01    |
      +--------+---------+-----+---------------+
      1 row in set (0.00 sec)
       
      而这个SQL,limit后面是从第3条开始读,读取1条信息。

        

      MySQL where 子句

      语法

      1
      2
      SELECT field1, field2,...fieldN FROM table_name1, table_name2...
      [WHERE condition1 [AND [OR]] condition2.....

      以下为操作符列表,可用于 WHERE 子句中。

      下表中实例假定 A为10 B为20

      操作符 描述 实例
      = 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
      <>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
      > 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
      < 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
      >= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
      <= 小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。

        

      使用主键来作为 WHERE 子句的条件查询是非常快速的。

      1
      select from student where register_date > '2016-03-04';

        

      MySQL UPDATE 查询

      语法

      1
      2
      UPDATE table_name SET field1=new-value1, field2=new-value2
      [WHERE Clause]
      1
      update student set age=22 ,name="Alex Li" where stu_id>3;

      MySQL DELETE 语句

      语法

      1
      DELETE FROM table_name [WHERE Clause]<br><br>delete from student where stu_id=5; 

      MySQL LIKE 子句

      语法

      1
      2
      3
      4
      5
      6
      SELECT field1, field2,...fieldN table_name1, table_name2...
      WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
       
       
      select *from student where name binary like "%Li";
      select *from student where name binary like  binary "%Li"; #只匹配大写

      MySQL 排序

      1
      2
      3
      4
      SELECT field1, field2,...fieldN table_name1, table_name2...
      ORDER BY field1, [field2...] [ASC [DESC]]
      使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
      select *from student where name like binary "%Li" order by stu_id desc;

      MySQL GROUP BY 语句  

      1
      2
      3
      4
      SELECT column_name, function(column_name)
      FROM table_name
      WHERE column_name operator value
      GROUP BY column_name;

      示例

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      mysql> SELECT FROM employee_tbl;
      +----+--------+---------------------+--------+
      | id | name   date                | singin |
      +----+--------+---------------------+--------+
      |  1 | 小明 | 2016-04-22 15:25:33 |      1 |
      |  2 | 小王 | 2016-04-20 15:25:47 |      3 |
      |  3 | 小丽 | 2016-04-19 15:26:02 |      2 |
      |  4 | 小王 | 2016-04-07 15:26:14 |      4 |
      |  5 | 小明 | 2016-04-11 15:26:40 |      4 |
      |  6 | 小明 | 2016-04-04 15:26:54 |      2 |
      +----+--------+---------------------+--------+
       
      接下来我们使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:
      mysql> SELECT nameCOUNT(*) FROM   employee_tbl GROUP BY name;
      +--------+----------+
      name   COUNT(*) |
      +--------+----------+
      | 小丽 |        1 |
      | 小明 |        3 |
      | 小王 |        2 |
      +--------+----------+
      rows in set (0.01 sec)
       
      使用 WITH ROLLUP
      mysql> SELECT nameSUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
      +--------+--------------+
      name   | singin_count |
      +--------+--------------+
      | 小丽 |            2 |
      | 小明 |            7 |
      | 小王 |            7 |
      NULL   |           16 |
      +--------+--------------+
      rows in set (0.00 sec)
      其中记录 NULL 表示所有人的登录次数。<br>
      我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:
      mysql> SELECT coalesce(name'总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

      MySQL ALTER命令

      我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

      删除,添加或修改表字段

      1
      alter table student drop register_date; #从student表删除register_date   字段alter table student add phone int(11) not null; #添加phone字段

      修改字段类型及名称

      如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。

      例如,把字段 c 的类型从 CHAR(1) 改为 CHAR(10),可以执行以下命令:

      1
      mysql> ALTER TABLE testalter_tbl MODIFY CHAR(10);

      使用 CHANGE 子句, 语法有很大的不同。 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。尝试如下实例:

      1
      2
      3
      mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
       
      mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

      ALTER TABLE 对 Null 值和默认值的影响

      当你修改字段时,你可以指定是否包含只或者是否设置默认值。

      以下实例,指定字段 j 为 NOT NULL 且默认值为100 。

      1
      2
      mysql> ALTER TABLE testalter_tbl
          -> MODIFY BIGINT NOT NULL DEFAULT 100;

      修改表名

      1
      mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

      关于主键

      外键,一个特殊的索引,用于关键2个表,只能是指定内容  

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      mysql> create table class(
          -> id  int not null primary key,
          -> name char(16));
      Query OK, 0 rows affected (0.02 sec)
       
       
      CREATE TABLE `student2` (
        `id` int(11) NOT NULL,
        `namechar(16) NOT NULL,
        `class_id` int(11) NOT NULL,
        PRIMARY KEY (`id`),
        KEY `fk_class_key` (`class_id`),
        CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`)
      )
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      此时如果class 表中不存在id 1,student表也插入不了,这就叫外键约束
      mysql> insert into student2(id,name,class_id) values(1,'alex', 1);
      ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`testdb`.`student2`, CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`))
       
       
       
      mysql> insert into class(id,namevalues(1,"linux");
      Query OK, 1 row affected (0.01 sec)
       
      mysql> insert into student2(id,name,class_id) values(1,'alex', 1);
      Query OK, 1 row affected (0.00 sec)
       
       
      #如果有student表中跟这个class表有关联的数据,你是不能删除class表中与其关联的纪录的
      mysql> delete from class where id =1;
      ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`testdb`.`student2`, CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`))

        

        

      MySQL NULL 值处理  

      我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。
      为了处理这种情况,MySQL提供了三大运算符:
      IS NULL: 当列的值是NULL,此运算符返回true。
      IS NOT NULL: 当列的值不为NULL, 运算符返回true。
      <=>: 比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。
      关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
      在MySQL中,NULL值与任何其它值的比较(即使是NULL)永远返回false,即 NULL = NULL 返回false 。
      MySQL中处理NULL使用IS NULL和IS NOT NULL运算符。

      Mysql 连接(left join, right join, inner join ,full join)

      我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。

      本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。

      你可以在SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。

      JOIN 按照功能大致分为如下三类:

      • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
      • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
      • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

      Suppose you have two tables, with a single column each, and data as follows:  

      1
      2
      3
      4
      5
      6
      A    B
      -    -
      1    3
      2    4
      3    5
      4    6

      Inner join

      An inner join using either of the equivalent queries gives the intersection of the two tables, i.e. the two rows they have in common.

      1
      2
      3
      4
      5
      6
      7
      select from INNER JOIN on a.a = b.b;
      select a.*,b.*  from a,b where a.a = b.b;
       
      a | b
      --+--
      3 | 3
      4 | 4

      其实就是只显示2个表的交集

      Left join

      A left join will give all rows in A, plus any common rows in B.

      1
      2
      3
      4
      5
      6
      7
      8
      select from LEFT JOIN on a.a = b.b;
       
      a |  b
      --+-----
      1 | null
      2 | null
      3 |    3
      4 |    4

      Right join

      A right join will give all rows in B, plus any common rows in A.

      1
      2
      3
      4
      5
      6
      7
      8
      select from RIGHT JOIN on a.a = b.b;
       
      a    |  b
      -----+----
      3    |  3
      4    |  4
      null |  5
      null |  6

      Full join

      A full outer join will give you the union of A and B, i.e. all the rows in A and all the rows in B. If something in A doesn't have a corresponding datum in B, then the B portion is null, and vice versa

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      select from FULL JOIN on a.a = b.b;
       
       a   |  b
      -----+-----
         1 | null
         2 | null
         3 |    3
         4 |    4
      null |    6
      null |    5

        

      mysql 并不直接支持full join,but 总是难不到我们

        

  2. RabbitMQ队列
    1. rabbit_direct_recv
      1.  import pika
        import sys connection = pika.BlockingConnection(pika.ConnectionParameters(
        host='localhost'))
        channel = connection.channel() channel.exchange_declare(exchange='direct_logs',
        type='direct') result = channel.queue_declare(exclusive=True)
        queue_name = result.method.queue severities = sys.argv[1:]
        if not severities:
        sys.stderr.write("Usage: %s [info] [warning] [error]\n" % sys.argv[0])
        sys.exit(1) for severity in severities:
        channel.queue_bind(exchange='direct_logs',
        queue=queue_name,
        routing_key=severity) print(' [*] Waiting for logs. To exit press CTRL+C') def callback(ch, method, properties, body):
        print(" [x] %r:%r" % (method.routing_key, body)) channel.basic_consume(callback,
        queue=queue_name,
        no_ack=True) channel.start_consuming()
    2. rabbit_direct_send
      1.  import pika
        import sys connection = pika.BlockingConnection(pika.ConnectionParameters(
        host='localhost'))
        channel = connection.channel() channel.exchange_declare(exchange='direct_logs',
        type='direct') severity = sys.argv[1] if len(sys.argv) > 1 else 'info'
        message = ' '.join(sys.argv[2:]) or 'Hello World!'
        channel.basic_publish(exchange='direct_logs',
        routing_key=severity,
        body=message)
        print(" [x] Sent %r:%r" % (severity, message))
        connection.close()

Python之路,day12-Python基础的更多相关文章

  1. Python之路,Day12 - 那就做个堡垒机吧

    Python之路,Day12 - 那就做个堡垒机吧   本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...

  2. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  3. Python之路,Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  4. Python之路,Day1 - Python基础1(转载Alex)

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  5. Python之路,Day1 - Python基础1 --转自金角大王

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  6. Python之路,Day1 - Python基础1 介绍、基本语法、流程控制

    本节内容 1.python介绍 2.发展史 3.python 2.x or python 3.x ? 4.python 安装 5.第一个程序 Hello World 程序 6.变量 7.用户输入 8. ...

  7. Python之路:Python简介

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间他为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 ...

  8. Python之路:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  9. Python学习笔记 - day12 - Python操作NoSQL

    NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...

  10. Python之路-初识python及环境搭建与测试(Python安装、Anaconda安装、PyCharm安装)

    一.认识Python 起源 Python的作者是著名的“龟叔”Guido van Rossum,他希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻 ...

随机推荐

  1. css3--布局正六边形

    怎样布局正六边形?-->如果不能直接布局,就只能采用图形的组合.-->既然是正六边形,则: -->AB=2分之根号3乘2倍的边长,也就是对于矩形ABCD来说,AB是BD的根号3倍(也 ...

  2. 解决ORA-14450:试图访问已经在使用的事务处理临时表

    select * from dba_objects where object_name='TEMP_MZGL_BRSFD'; select 'alter system kill session ''' ...

  3. vector容器使用和assert断言关键字

    C++里面的容器是个比较复杂的东西,我这篇只说vector容器怎么使用,详细的网搜. vector模板类其实是一个动态数组,跟自己用new关键字创建数组一样,只不过vector会自动帮我们用new和d ...

  4. appium+Python真机运行测试demo的方法

    appium+Python真机运行测试demo的方法 一,    打开手机的USB调试模式 二,    连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...

  5. Linux 防火墙开放特定端口 (iptables)

    iptables是linux下的防火墙,同时也是服务名称.   service  iptables  status        查看防火墙状态 service  iptables  start   ...

  6. Discuz 7.0版块横排显示版块图标和版块简介的方法

    Discuz 7.0版块横排显示版块图标和版块简介的方法 最近很多朋友咨询Discuz论坛设置论坛版块横排后,如何设置显示版块图标和简介的问题. 一.显示板块图标 找到templates\defaul ...

  7. SQLiteDeveloper破解

    Sqlite 管理工具 SQLiteDeveloper及破解 功能特点 表结构设计,数据维护,ddl生成,加密数据库支持,sqlite2,3支持 唯一缺憾,收费,有试用期 下载地址: http://w ...

  8. MINIX3

    这个系列minix3是好早看的源码  现在都忘记的差不多了 觉得就此扔掉可惜了  今天把他全部放在博客上 1 是想和大家一起讨论下 2 是没事看看 能够加强对一个稳定性系统的理解 加厚

  9. 快速上手RaphaelJS--Instant RaphaelJS Starter翻译(三)

    (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Starter3 ...

  10. Day24_多线程第一天

    1.线程 1.概述      宏观来讲      进程:就是正在运行的程序      线程:就是进程的执行路径,执行单元 2.创建并启动线程的两种方式(掌握)      1.定义一个类继承Thread ...