Category: Life

  • column命令

    想要使文本以整齐的tab表示,可以使用column -t命令

    例子:

    [mysqld_multi]
    mysqld = /usr/local/mysql/bin/mysqld_safe
    mysqladmin = /usr/local/mysql/bin/mysqladmin
    user = root
    log = /var/log/mysqld_multi.log
    
    [mysqld3306]
    port = 3306
    socket = /tmp/mysql3306.sock
    pid-file = /var/run/mysql/mysql3306.pid
    datadir = /data/innodb
    user = mysql

    写入到my.test.cnf中

    运行

    column -t my.test.cnf

    变成了

    [mysqld_multi]
    mysqld          =  /usr/local/mysql/bin/mysqld_safe
    mysqladmin      =  /usr/local/mysql/bin/mysqladmin
    user            =  root
    log             =  /var/log/mysqld_multi.log
    [mysqld3306]
    port            =  3306
    socket          =  /tmp/mysql3306.sock
    pid-file        =  /var/run/mysql/mysql3306.pid
    datadir         =  /data/innodb
    user            =  mysql
  • MySQL/MariaDB单机多实例配置

    在同一台服务器上可以配置mysql多实例,提高服务器的使用率

    这里mysql的目录为/usr/local/mysql/,开两个实例,存放目录分别为

    /data/db1
    /data/db2

    分别监听3306, 3307

    接下来写好/etc/my.cnf内容,主要注意sock, pid, log

    [mysqld_multi]
    mysqld = /usr/local/mysql/bin/mysqld_safe
    mysqladmin = /usr/local/mysql/bin/mysqladmin
    user = root
    log = /var/log/mysqld_multi.log
    
    [mysqld3306]
    port = 3306
    socket = /tmp/mysql3306.sock
    pid-file = /var/run/mysql/mysql3306.pid
    datadir = /data/innodb
    user=mysql
    log-error=/var/log/mysql_error3306.log
    default-storage-engine = INNODB
    innodb_read_io_threads = 16
    innodb_write_io_threads = 4
    innodb_io_capacity = 4000
    back_log = 50
    max_connections = 2000
    max_prepared_stmt_count=500000
    max_connect_errors = 10
    table_open_cache = 2048
    max_allowed_packet = 16M
    binlog_cache_size = 16M
    max_heap_table_size = 64M
    sort_buffer_size = 4M
    join_buffer_size = 4M
    thread_cache_size = 1000
    query_cache_size = 0
    query_cache_type = 0
    thread_stack = 192K
    tmp_table_size = 64M
    server-id = 10
    key_buffer_size = 8M
    read_buffer_size = 1M
    read_rnd_buffer_size = 4M
    bulk_insert_buffer_size = 8M
    myisam_sort_buffer_size = 8M
    myisam_max_sort_file_size = 10G
    myisam_repair_threads = 1
    myisam_recover
    
    [mysqld3307]
    port = 3307
    socket = /tmp/mysql3307.sock
    pid-file = /var/run/mysql/mysql-3307.pid
    datadir = /data/tokudb
    user=mysql
    log-error=/var/log/mysql_error3307.log
    back_log = 50
    max_connections = 2000
    max_prepared_stmt_count=500000
    max_connect_errors = 10
    table_open_cache = 2048
    max_allowed_packet = 16M
    binlog_cache_size = 16M
    max_heap_table_size = 64M
    sort_buffer_size = 4M
    join_buffer_size = 4M
    thread_cache_size = 1000
    query_cache_size = 0
    query_cache_type = 0
    ft_min_word_len = 4
    thread_stack = 192K
    tmp_table_size = 64M
    server-id = 10
    key_buffer_size = 8M
    read_buffer_size = 1M
    read_rnd_buffer_size = 4M
    bulk_insert_buffer_size = 8M
    myisam_sort_buffer_size = 8M
    myisam_max_sort_file_size = 10G
    myisam_repair_threads = 1
    myisam_recover

    安装数据文件

    cd /usr/local/mysql/
    ./scripts/mysql_install_db --datadir=/data/db1/ --user=mysql
    ./scripts/mysql_install_db --datadir=/data/db2/ --user=mysql

    创建启动脚本

    cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
    chmod u+x /etc/init.d/mysqld_multi

    为方便使用,将/usr/local/mysql/bin加入到PATH中

    export PATH=/usr/local/mysql/bin:$PATH

    启动实例

    /etc/init.d/mysqld_multi start 3306
    /etc/init.d/mysqld_multi start 3307

    查看启动的情况

    netstat -tnlp
  • 能让我心静下来的一些东西

    道德经

    红楼梦

    经典美文

    一些歌曲:亲密爱人

    总节一下就是 文字与音乐。

  • ssh-agent使用笔记

    ssh-agent是管理多个ssh key的代理,受管理的私钥通过ssh-add来添加

    好处1:不用重复输入密码。
    用 ssh-add 添加私钥时,如果私钥有密码的话,照例会被要求输入一次密码,在这之后ssh-agent可直接使用该私钥,无需再次密码认证。

    好处2:不用到处部署私钥
    假设私钥分别可以登录同一内网的主机 A 和主机 B,出于一些原因,不能直接登录 B。可以通过在 A 上部署私钥或者设置 Forwarding 登录 B,也可以转发认证代理连接在 A 上面使用ssh-agent私钥登录 B;可以在A上直接sftp传文件到B上。

    如这边有一台机器是local,能通过公钥直接登陆server1和server2。server1和server2之间无公钥登陆。

    现在要在server1上直接登陆server2,在local上执行

    ssh-agent
    ssh-add

    接下来登陆server1,注意-A

    ssh -A server1

    可以发现server1上多了/tmp/ssh-xxxxxxxxx/agent.xxxxx的socket,之后神奇的事发生了,在server1上可直接进server2,只需执行如下命令,如果加了-A则可以继续ssh forwarding,以至无限的机器forwarding。

    ssh (-A) server2

    同样的原理可以试一下sftp, scp等基于ssh的命令。

    如运行ssh-add,遇到“Could not open a connection to your authentication agent.”。

    解决:需要ssh-agent启动bash,或者说把bash挂到ssh-agent下面。

    eval "$(ssh-agent -s)"
    ssh-add

    list the agent managed identities

    ssh-add -l

    delete all agent managed identities

    ssh-add -D

    参考:
    http://www.cnblogs.com/cheche/archive/2011/01/07/1918825.html
    http://blog.pkufranky.com/2012/08/ssh-agent-forwarding-guide/
    http://blog.jobbole.com/33790/

  • 升级subversion重新编译mod_dav_svn

    背景:

    在centos下已经按yum方式安装了apache和subversion, mod_dav_svn

    因为yum最新稳定版只有1.6.x,最新版本为1.8.x。所以现在需要对yum安装的subversion进行升级。

    首先卸载mod_dav_svn,因为它是旧的mod_dav_svn.so和mod_authz_svn.so

    yum -e mod_dav_svn

    下载subversion1.8.3

    http://subversion.apache.org/download/#recommended-release

    需要安装httpd-devel

    yum install httpd-devel

    解压,编译

    ./configure --with-apxs=/usr/sbin/apxs
    make && make install

    到/usr/local/libexec,将mod_svn_dav.so和mod_authz_svn.so复制到/etc/httpd/modules/下,确认apache配置文件中有如下两行:

    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

    新安装的一系列svn bin文件在/usr/local/bin/svn,确认安装的subversion版本

    svn --version
    svnadmin --version

    至此subversion升级完成。

    https://wiki.archlinux.org/index.php/Subversion_Setup