Pkold

javascript linux vue

vue的简单记录

vue的简单记录

vue的简单记录

虽然是vue的文档是中文的 但是确实蛮啰嗦

  • 数据绑定
v-bind:title="message"
{{ message }}

var app2 = new Vue({
  el: '#app-2',
  data: {
    message: 'hello '
  }
})
  • 判断
v-if="ok"
v-else
v-show="ok"
  • 循环
遍历

v-for="todo in todos"
{{ todo.text }}
var app4 = new Vue({
  el: '#app-4',
  data: {
    todos: [
      { text: '学习 JavaScript' },
      { text: '学习 Vue' },
      { text: '整个牛项目' }
    ]
  }
})


app4.todos.push({ text: '新项目' })

遍历时提取数组索引
v-for="(item, index) in items"

遍历对象
v-for="(value, key, index) in object"
  • 事件监听
v-on:click="reverseMessage"

var app5 = new Vue({
  el: '#app-5',
  data: {
    message: 'Hello Vue.js!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})


阻止单击事件冒泡
v-on:click.stop="doThis"
提交事件不再重载页面 
v-on:submit.prevent="onSubmit"
修饰符可以串联 
v-on:click.stop.prevent="doThat"
只有修饰符
v-on:submit.prevent
添加事件侦听器时使用事件捕获模式
v-on:click.capture="doThis"
只当事件在该元素本身(比如不是子元素)触发时触发回调
v-on:click.self="doThat"

按键别名

.enter
.tab
.delete (捕获 “删除”  “退格” )
.esc
.space
.up
.down
.left
.right
  • 双向绑定
v-model="message"

var app6 = new Vue({
  el: '#app-6',
  data: {
    message: 'Hello Vue!'
  }
})
captcha php

非Laravel使用Laravel的验证码库gregwar/captcha

非Laravel使用Laravel的验证码库gregwar/captcha

在Laravel中有很多图片验证码的库可以使用,本篇介绍其中之一:gregwar/captcha, 这个库比较简单,在Laravel中比较常用 但是也可以在其他框架中使用

首先,初始化composer 然后引入包 ```php composer init composer require gregwar/captcha

```

引入autoload.php

这里使用的是yurunphp实在/lib/init.php中引用autoload.php

代码中引入命名空间

```php use Gregwar\Captcha\CaptchaBuilder;

控制器中php

public function captcha($tmp) { //生成验证码图片的Builder对象,配置相应属性 $builder = new CaptchaBuilder; //可以设置图片宽高及字体 $builder->build($width = 100, $height = 40, $font = null); //获取验证码的内容 $phrase = $builder->getPhrase();

    //把内容存入session
    Session::flash('milkcaptcha', $phrase);
    //生成图片
    header("Cache-Control: no-cache, must-revalidate");
    header('Content-Type: image/jpeg');
    $builder->output();
}

```

前端调用

```

php zend3

zend3mvc文档汉化

zend3mvc文档汉化

快速开始

现在您已经了解了应用程序、模块以及它们是如何构造的,我们将向您展示入门的简单方法。

安装在Zend支架的应用

安装Zend骨架应用最简单的方式开始安装骨架应用composer。 如果你还没有这样做,安装composer。

这里

debian
sudo apt install composer
fedora
sudo dnf install composer

安装好后,修改成中国源

composer config -g repo.packagist composer
 https://packagist.phpcomposer.com

在命令行中运行命令安装脚手架

$ composer create-project -sdev 
zendframework/skeleton-application my-application

创建一个新模块

默认情况下,一个模块提供的zendskeletonapplication,命名为“application”。

它提供了一个控制器来处理应用程序的"index”、布局模板和404个错误页面的模板。

通常,除了为站点和/或交替错误页提供一个备用条目页外,您不需要触摸其他内容。

通过创建新的模块将提供额外的功能。

你开始的模块,我们建议使用zendskeletonmodule为基础。从这里下载它:

https://github.com/zendframework/ZendSkeletonModule/

重命名目录“ZendSkeletonModule”成为的是你想创建新的模块的名称;

完成后,将模块放入你的新项目的模块目录。

更新模块类

让我们更新模块类。 我们要确保命名空间是正确的,配置启用并返回,而我们设置自动初始化。 我们可能想在我们的自动载入的方法是相当宽松的, 所以让我们用standardautoloader保持灵活。开始吧.

  • 首先,让我们 autoload_classmap.php 返回空数组:
// autoload_classmap.php
return array();
  • 我们还将编辑配置 module.config.php 文件如下:
return array(
    'view_manager' => array(
        'template_path_stack' => array(
            'module-name' => __DIR__ . '/../view'
        ),
    ),
);

用小写填写 模块 名称,破折号分开你的模块名称版本;例如,“ZendUser”将成为"zend-user”。

接下来,编辑的 module.php 文件命名空间声明。替换以下行:

namespace ZendSkeletonModule;

使用要为应用程序使用的命名空间。

接下来,重命名目录 src/zendskeletonmodule 为 src/要添加的模块名

和目录 view/zend-skeleton-module 为 src/模块名.

此时,您现在已经正确配置了模块。让我们创建控制器!

创建一个控制器

控制器对象实现 Zend\Stdlib\DispatchableInterface

这意味着他们需要实现 dispatch() 以最小请求对象作为参数的方法。

然而,实际上,这意味着在每个控制器中基于匹配路由来编写逻辑分支。因此,我们已经为您创建了几个基本控制器类:

  • Zend\Mvc\Controller\AbstractActionController 允许路由匹配的 action (视图) 。 当匹配时,控制器将调用一个命名为action的方法。 作为一个例子,如果你有一条返回“foo”为action的关键,“fooaction”方法将被调用。

  • Zend\Mvc\Controller\AbstractRestfulController 通过Request来确定什么样的HTTP方法请求被使用,和调用方法根据。

  • get将调用getlist()法,或者,如果一个“id”匹配的路由过程中,get()方法(与标识符的值)。

  • post 会叫create()方法, 通过在 $_POST 的值.

  • put希望在路由过程中匹配一个 "id", 并调用 update () 方法、传入该标识符以及在原始 post 正文中找到的任何数据。

  • DELETE需要在路由过程中匹配 "id", 并调用 delete () 方法。

  • Zend\Mvc\Controller\AbstractConsoleControllerAbstractActionController 扩展, 但提供了检索Zend\Console\Adapter\AdapterInterface 实例的方法, 并确保在台环境中执行失败。

要开始, 我们将创建一个 "hello 世界"-风格的控制器, 一个单一的动作。

首先, 在目录 src/module name/Controller中创建文件 HelloController.php。

在您喜爱的文本编辑器或 ide 中编辑它, 并插入以下内容:

namespace module name\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class HelloController extends AbstractActionController
{
    public function worldAction()
    {
        $message = $this->params()->fromQuery('message', 'foo');
        return new ViewModel(['message' => $message]);
    }
}

以上代码里做什么?

  • 我们正在创建一个视图控制器。
  • 我们在定义一个视图, "world"。
  • 我们正在从查询参数中提取消息 (是的, 在生产中这是一个非常糟糕的主意!总是消毒您的输入!
  • 我们将返回一个 viewmodel, 该数组的值将在以后处理。

我们返回一个 viewmodel。视图层将在呈现视图时使用它, 从中抽取变量和模板名称。默认情况下, 可以省略模板名称, 它将解析为 "小写-模块名称/小写-控制器名称/小写-操作-名称"。但是, 您可以重写此项以在 viewmodel 实例上调用 setTemplate () 来指定不同的东西。通常, 模板将解析为模块的视图目录中带有 ". phtml" 后缀的文件。

因此, 考虑到这一点, 让我们创建一个视图脚本。

创建视图脚本

创建目录view/module-name/hello。在该目录中, 创建一个名为 "world.phtml" 的文件,并在这里面, 粘贴以下内容:

 echo $this->escapeHtml($message)

这样就成。保存文件。

转义输出 escapeHtml () 的方法是什么?它实际上是一个视图帮助器, 它旨在帮助减轻 xss 攻击。不信任用户输入;如果您在视图脚本中对给定变量的源完全不确定, 请根据您拥有的数据类型, 使用提供的转义视图助手之一来转义它。

使用命名空间查看模块名称的脚本

根据 PSR-0, 模块应按照以下规则命名:

Vendor Name\Namespace \ *

从版本3.0 开始, 默认的模板名称解析器使用完全限定的控制器类名, 仅剥离 \Controller\ subnamespace (如果存在)。例如, AwesomeMe \n MyModule \ Controller \ HelloWorldController 通过以下配置解析到模板名称wesome-me/my-module/hello-world :

一下是配置

'view_manager' => array(
    'controller_map' => array(
        'AwesomeMe\MyModule' => true,
    ),
),

(在 v2 版本中, 默认为剥离空间, 但可选的映射规则允许在模块配置中名单命名空间以启用当前的冲突解决程序行为。有关详细信息, 请参阅迁移指南。

创建路由

现在, 我们有了一个控制器和一个视图脚本, 我们需要创建一个路由到它。

默认路由

  • ZendSkeletonModule 导向一个默认路由 访问您的视图 该路由大致定义为/{模块}/{控制器}/{视图}, 这意味着路径 /zend-user/hello/world 将映射到 ZendUser\Controller\HelloController::worldAction() (假定模块名称为 ZendUseZendUser).
  • 在本例中, 我们将创建一个显式路由, 因为创建显式路由是推荐的做法。 应用程序将寻找一个Zend\Mvc\Router\RouteStackInterface 实例来设置路由。 默认生成的路由器是一个Zend\Mvc\Router\Http\TreeRouteStack.

  • 要使用 "默认路由" 功能, 您需要在模块的config/module.config.php 中编辑已发运的路由定义, 然后替换:

    • module-specific-root使用模块特定的根路径。
    • ZendSkeletonModule\ControllerYourModuleName\Controller

此外, 我们需要告诉应用程序, 我们有一个控制器:

// module.config.php
return [
    'controllers' => [
        'invokables' => [
            'module-namespace\Controller\Index' => 'module-namespace\Controller\IndexController',
            // Do similar for each other controller in your module
        ],
    ],
   // ... other configuration ...
];

控制器服务 我们通知应用程序, 我们期望在应用程序的控制器。这是为了防止有人请求任何服务的 ServiceManager 知道在试图打破应用程序。调度器使用一个特殊的、作用域的容器, 它只会将特定注册的控制器作为可类或通过工厂进行。

打开您的config/module.config.php文件, 并将其修改为添加到 "路由" 和 "控制器" 参数, 以便它读取如下内容:

return [
    'router' => [
        'routes' => [
            'module name-hello-world' => [
                'type'    => 'Literal',
                    'options' => [
                    'route' => '/hello/world',
                    'defaults' => [
                        'controller' => 'module name\Controller\Hello',
                        'action'     => 'world',
                    ],
                ],
            ],
        ],
    ],
    'controllers' => [
        'invokables' => [
            'module namespace\Controller\Hello' => 'module
namespace\Controller\HelloController',
        ],
    ],
    // ... other configuration ...
];

告诉应用程序关于我们的模块

一个问题: 我们还没有告诉我们的新模块的应用!

默认情况下, 除非我们告诉模块管理器有关它们, 否则不会使用模块。因此, 我们需要通知应用程序有关它们的信息。

请记住config/application.config.php 文件。让我们修改它添加我们的新模块。一旦完成, 应改为:

return array(
    'modules' => array(
        'Application',
        'module namespace',
    ),
    'module_listener_options' => array(
        'module_paths' => array(
            './module',
            './vendor',
        ),
    ),
);

module namespace 替换为模块的命名空间。

访问 现在更改 url 为"/hello/world"

原文链接 (zhenruyan译)

linux swap zram

开启 zram

开启 zram

1、导入模块zram,会产生新的块设备/dev/zram0


modprobe zram num_devices=1


2、调整容量,这里使用512M内存


echo 512M > /sys/block/zram0/disksize


3、创建swap分区


mkswap /dev/zram0
4、挂载swap分区


swapon -p 100 /dev/zram0
bsd freebsd linux

bsd安装后的设置

bsd安装后的设置

sshd_config
修改root的ssh登录方式
PermitRootLogin no
禁止其他用户除了to
AllowUsers towheel

更换portsnap源

========================

1.安装ports

#portsnap fetch -s portsnap1.chinafreebsd.cn
2.编辑portsnap配置文件

#ee /etc/portsnap.conf
3.将默认服务器注释掉

#SERVERNAME=portsnap.FreeBSD.org
4.更改服务器为chinafreebsd镜像

SERVERNAME=portsnap1.chinafreebsd.cn
5.下载ports快照

#portsnap fetch extract
6.更新

#portsnap update

更换port源

=======================

如果不想让源码直接从源码所为维护的官方主站上直接获取,那么我们需要为 ports 
系统指定远程缓存目录,也就是通常所说的 ports 换源。换源的方法如下:
1、为了能使用官方ports源,你需要修改 /etc/make.conf 添加如下配置:

MASTER_SITE_OVERRIDE?=\
http://distcache.FreeBSD.org/ports-distfiles/
其中第一行意义为使用地址覆盖指令覆盖掉 ports 中默认下载地址,
而第二行则表示需要使用的新地址。
2、使用第三方非授权源替代官方源,需要修改 /etc/make.conf 添加如下配置:

MASTER_SITE_OVERRIDE?=\
http://ftp2.za.freebsd.org/pub/FreeBSD/ports/distfiles/
3.如需使用China FreeBSD Wiki源,需要修改 /etc/make.conf 添加如下配置:

MASTER_SITE_OVERRIDE?=\
http://ports1.chinafreebsd.cn/distfiles/
4.如需使用多个源地址,需要修改 /etc/make.conf 添加如下配置:

MASTER_SITE_OVERRIDE?=\
http://ports1.chinafreebsd.cn/distfiles/ \
http://ftp2.za.freebsd.org/pub/FreeBSD/ports/distfiles/ \
http://distcache.FreeBSD.org/ports-distfiles/
其中第2、3行结尾处的“\”表示换行。

更换pkg源

1. PKG二进制仓储源文件存储目录 的使用方法
系统中常用的PKG二进制仓储源文件存储目录有两个,一个是系统级仓储文件目录,
另一个是用户级仓储文件目录,系统级仓储文件目录为 /etc/pkg/
 而用户级别仓储文件目录为 /usr/local/etc/pkg/repos/
 这个目录在默认情况下并不存在于系统中,需要用户手工建立,
 而这两个路径均由 /usr/local/etc/pkg.conf  REPOS_DIR 变量控制,原则上可以由用户自由定制。

2. 建立通用户级PKG二进制仓储源文件存储目录
#mkdir -p /usr/local/etc/pkg/repos

3. 建立常用的用户级PKG二进制仓储源文件
#cd /usr/local/etc/pkg/repos
建立仓储源文件的格式要求为:必须使用 .conf 为后缀名结尾的文件。
最好使用 0. 或者 1- 等数字为前缀的文件名,因为同时启用多个 PKG 源文件时
PKG源文件名的第一个数字前缀直接影响着源的使用优先级,其文件格式的建立如下:



定制第一个仓储文件为 0.bme.conf

bme: {
  url: "pkg+http://pkg0.bme.freebsd.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "none",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
定制第二个仓储文件为 1.nyi.conf

nyi: {
  url: "pkg+http://pkg0.nyi.freebsd.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "none",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
定制第三个仓储文件为 2.ydx.conf

ydx: {
  url: "pkg+http://pkg0.ydx.freebsd.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "none",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
定制第四个仓储文件为 3.isc.conf

isc: {
  url: "pkg+http://pkg0.isc.freebsd.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "none",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
定制第五个仓储文件为 4.chinafreebsd.conf

chinafreebsd: {
  url: "pkg+http://pkg1.chinafreebsd.cn/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "none",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
重要:
 PKG 源为本站私有 PKG 源,速度要优于以上源地址,建议使用此源!!!
另外,建议只选用一个最快的PKG源,而不是同时启用多个,如果同时启用了多个 PKG 源,
那么在安装软件包或升级 PKG 源时候请使用 -r 选项指定要操作的 PKG 源。
比如:pkg update -r chinafreebsd 或者 pkg install -r chinafreebsd -y xxxx 
4. 禁用默认 PKG 仓储源
可以直接禁用系统级源文件,换源的主要目的是增加 pkg install 命令下载速度,
或者是不能忍受默认源的龟速,用户可以直接禁用系统默认的官方源。比如:

#echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
注意: 
此步骤不是必须,如果保留系统仓储源文件,则系统默认源将和用户源一同有效
5. 更新源
所有源在使用前最好进行一次强制更新。比如:

#pkg update -f 
Updating nyi repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB 268.1kB/s    00:22    
Processing entries: 100%
nyi repository update completed. 25828 packages processed.
Updating ydx repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    1 KiB   0.0kB/s    01:00  
......
或者更新某个想要使用的源。比如:

#pkg update -r bme 
Updating bme repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB 268.1kB/s    00:22    
Processing entries: 100%
bme repository update completed. 25828 packages processed.
6. 验证当前生效源
使用 pkg -vv 命令可以打印当前 PKG 的配置信息,以及所有生效源配置,例如:

#pkg -vv
Version                 : 1.8.8
PKG_DBDIR = "/var/db/pkg";
PKG_CACHEDIR = "/var/cache/pkg";
PORTSDIR = "/usr/ports";
INDEXDIR = "";
INDEXFILE = "INDEX-11";
HANDLE_RC_SCRIPTS = false;
DEFAULT_ALWAYS_YES = false;
ASSUME_ALWAYS_YES = false;
REPOS_DIR [
    "/etc/pkg/",
    "/usr/local/etc/pkg/repos/",
]
PLIST_KEYWORDS_DIR = "";
SYSLOG = true;
ABI = "FreeBSD:11:amd64";
ALTABI = "freebsd:11:x86:64";
DEVELOPER_MODE = false;
VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2";
FETCH_RETRY = 3;
PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";
PKG_ENABLE_PLUGINS = true;
PLUGINS [
]
DEBUG_SCRIPTS = false;
PLUGINS_CONF_DIR = "/usr/local/etc/pkg/";
PERMISSIVE = false;
REPO_AUTOUPDATE = true;
NAMESERVER = "";
HTTP_USER_AGENT = "pkg/1.8.8";
EVENT_PIPE = "";
FETCH_TIMEOUT = 30;
UNSET_TIMESTAMP = false;
SSH_RESTRICT_DIR = "";
PKG_ENV {
}
PKG_SSH_ARGS = "";
DEBUG_LEVEL = 0;
ALIAS {
    all-depends = "query %dn-%dv";
    annotations = "info -A";
    build-depends = "info -qd";
    cinfo = "info -Cx";
    comment = "query -i \"%c\"";
    csearch = "search -Cx";
    desc = "query -i \"%e\"";
    download = "fetch";
    iinfo = "info -ix";
    isearch = "search -ix";
    prime-list = "query -e '%a = 0' '%n'";
    leaf = "query -e '%#r == 0' '%n-%v'";
    list = "info -ql";
    noauto = "query -e '%a == 0' '%n-%v'";
    options = "query -i \"%n - %Ok: %Ov\"";
    origin = "info -qo";
    provided-depends = "info -qb";
    raw = "info -R";
    required-depends = "info -qr";
    roptions = "rquery -i \"%n - %Ok: %Ov\"";
    shared-depends = "info -qB";
    show = "info -f -k";
    size = "info -sq";
}
CUDF_SOLVER = "";
SAT_SOLVER = "";
RUN_SCRIPTS = true;
CASE_SENSITIVE_MATCH = false;
LOCK_WAIT = 1;
LOCK_RETRIES = 5;
SQLITE_PROFILE = false;
WORKERS_COUNT = 0;
READ_LOCK = false;
PLIST_ACCEPT_DIRECTORIES = false;
IP_VERSION = 0;
AUTOMERGE = true;
VERSION_SOURCE = "";
CONSERVATIVE_UPGRADE = true;
PKG_CREATE_VERBOSE = false;
AUTOCLEAN = false;
DOT_FILE = "";
REPOSITORIES {
}
VALID_URL_SCHEME [
    "pkg+http",
    "pkg+https",
    "https",
    "http",
    "file",
    "ssh",
    "ftp",
    "ftps",
    "pkg+ssh",
    "pkg+ftp",
    "pkg+ftps",
]
ALLOW_BASE_SHLIBS = false;
WARN_SIZE_LIMIT = 1048576;


Repositories:
  bme: { 
    url             : "pkg+http://pkg0.bme.freebsd.org/FreeBSD:11:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    fingerprints    : "/usr/share/keys/pkg"
  }
  nyi: { 
    url             : "pkg+http://pkg0.nyi.freebsd.org/FreeBSD:11:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    fingerprints    : "/usr/share/keys/pkg"
  }
  ydx: { 
    url             : "pkg+http://pkg0.ydx.freebsd.org/FreeBSD:11:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    fingerprints    : "/usr/share/keys/pkg"
  }
  isc: { 
    url             : "pkg+http://pkg0.isc.freebsd.org/FreeBSD:11:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    fingerprints    : "/usr/share/keys/pkg"
  }
  chinafreebsd: { 
    url             : "pkg+http://pkg1.chinafreebsd.cn/FreeBSD:11:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    fingerprints    : "/usr/share/keys/pkg"
  }


7.  -r 选项使用任意指定源安装软件
安装二进制安装包时可以使用 -r 选项选定要使用的源,
源名称为源文件中第一行中冒号之前的名称 比如 bme

#pkg install -y -r bme vim-lite
linux mysql php

mysql解压安装,以及单机同时运行多个版本

mysql解压安装,以及单机同时运行多个版本

bin/mysqld --initialize --user=mysql 
--basedir=/usr/local/mysql --datadir=/data/mysql
如果失败的话
 bin/mysqld --defaults-file=C:\my.ini --initialize  

 此处需要注意记录生成的临时密码如上文YLi>7ecpe;YP

 cp my-default.cnf /etc/my.cnf

bin/mysqld_safe --defaults-file=my.cnf

my.cnf
basedir=/home/free/sqls
datadir=/home/free/sqls/data
port=9999
server_id=29922
socket=/home/free/sqls/my.socke

设置默认utf-8
character_set_server=utf8 
init_connect='SET NAMES utf8'

mysql --socket=xxxx

set password=password('root');
grant all privileges on *.* to root@'%' identified by 'root';

flush privileges;

grant grant option on *.* to 'root'@'%';
mysql nosql sql

mysql.ini

mysql的配置文件

[client]
port=3306

[mysql]
default-character-set=utf8

[mysqld]
port=3306
server_id=1
character-set-server=utf8
default-storage-engine=MYISAM
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
slow_query_log=0
long_query_time=2
local-infile=0
skip-external-locking
#skip-innodb
#log-bin=mysql-bin
#binlog_format=mixed

max_connections=1000
query_cache_size=0
key_buffer_size=64M
sort_buffer_size=256kb
read_buffer_size=512kb
join_buffer_size=2M
read_rnd_buffer_size=2M
max_allowed_packet=16M
table_open_cache=256
tmp_table_size=64M
max_heap_table_size=64M

myisam_max_sort_file_size=64G
myisam_sort_buffer_size=32M
myisam_repair_threads=1

innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_log_buffer_size=2M
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size=20M
sort_buffer_size=20M
read_buffer=2M
write_buffer=2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit=8192
mysql

mysql添加用户

mysql添加用户

# mysql -u root -p
# 允许本地 IP 访问 localhost, 127.0.0.1
# insert into mysql.user(Host,User,Password) 
values('localhost','zhouz',password('1234'));
# 允许外网 IP 访问
# insert into mysql.user(Host,User,Password) 
values('%','zhouz',password('1234'));
# 刷新授权
# flush privileges;
# 创建数据库
# create database zhouzdb DEFAULT CHARSET 
utf8 COLLATE utf8_general_ci;
# 授予用户通过外网IP对于该数据库的全部权限
# grant all privileges on `zhouzdb`.* to 
'zhouz'@'%' identified by '1234';
# 授予用户在本地服务器对该数据库的全部权限
# grant all privileges on `zhouzdb`.* to
 'zhouz'@'localhost' identified by '1234';


# 刷新权限
# flush privileges;
# 退出 root 重新登录
# \q
# 已新帐号 zhouz 登录,由于使用的是 % 任意IP连接,所以需要指定外部访问IP
# mysql -u zhouz -h 192.168.1.168 -p
# 1234

utf8mb4

创建用户
CREATE USER free@'%' IDENTIFIED  BY '密码'
创建数据库
create database free DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
给数据库加权限
GRANT ALL PRIVILEGES ON `free`.* TO free@'%';
给用户加全县
GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%' WITH GRANT OPTION;
pe windows

windowspe常用推荐

windowspe常用推荐

windowspe常用推荐

  • 一个不知道叫什么好的U盘启动工具集 这个作者挺逗的,petools很全很全而且是手动一键加载 u盘速度慢又想有一大堆工具集的可以试试

  • 细细哥的U盘系统 作者的U盘系统进行了一定的配置,可以合理节约U盘空间

  • 小懒的ramos系统 小懒的系统实在是修改太多了。用起来总会莫名bug,但是pe确实出奇的好用,稳定性很好 但是没有内置ghost工具,自己在U盘里放一个就可以了

  • 杏雨梨云pe 老牌pe,在老毛桃被各种山寨的时代,杏雨梨云pe仍然不断更新

  • USBOS 一个彪悍的pe,工具全面,兼容性极好,一个面面俱到的pe,pe中的必备良品

  • 天意pe 老牌pe,各种老主板下很稳定,一个字

  • Porteus pe 以linux为基础的pe,支持wim ghost等安装 支持wifi破解 等各种扩充 pe必备之一

base64 linux

linux 下base64 用法

linux 下base64 用法

linux 下base64 用法

编码

base64 file >  file.text

解码

base64 -d file.text > file