vim常用命令

  • 列编辑
    鼠标移动到对应位置,ctrl+v进入列编辑选中要修改的块,shift+i进入编辑模式,输入内容,第一行变化,连续按两次 esc 键,刚才列编辑选中的所有行都发生变化

  • 折叠与展开

    • zi 打开关闭折叠
    • zv 查看此行
    • zm 关闭折叠
    • zM 关闭所有
    • zr 打开
    • zR 打开所有
    • zc 折叠当前行
    • zo 打开当前折叠
    • zd 删除折叠
    • zD 删除所有折叠
  • 代码缩进与格式化
    根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行

  • 翻页与移动

    • page up: ctrl+b
    • page down: ctrl+f
    • 行首:0
    • 行尾:$
    • 定位到第几行:数字+G
    • 文件头部:gg
    • 文件尾部:G
      阅读全文 »

  • 修改表的引擎
    mysql> ALTER TABLE $table_name ENGINE = InnodB;

  • 修改表名
    mysql> RENAME TABLE $old_table_name TO $new_table_name

  • 增加主键/索引
    mysql> ALTER TABLE $tableName ADD (PRIMARY) KEY ($column)

  • 待续…

OSX(brew)环境重置MySQL的root用户密码

停止MySQL服务

$ brew services stop mysql

启动MySQL安全模式

$ mysqld_safe --skip-grant-tables

‘–skip-grant-tables’ 参数会忽略权限验证及免密码登录

登入MySQL

$ mysql

修改root用户密码

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('your-new-password') where user='root';

重启MySQL服务

$ pkill mysqld
$ brew services start mysql

场景:MySQL出现“too many connections”错误

MySQL默认会额外保留一条供root用户建立的连接,以确保root用户可随时登录查看并检测服务器状态,当出现上述场景时,我们就可通过show [full] processlist命令查看当前所有进程状态,通过kill掉某些慢sql及分析产生原因来优化sql代码. 操作如下.

查看mysql所有执行状态

mysql> show full processlist

如果MySQL登录用户有PROCESS权限,列表会输出所有进程信息,否则只有当前登录用户所属的进程,若不加full关键字,Info字段信息会只截取前100个字符显示.

列表字段说明:

id

MySQL连接的id标示

User

建立此次连接的MySQL user

Host

此次连接建立的客户端,如果是系统进程此处则为空。MySQL通过此次TCP/IP连接中的host_name:client_port信息获取host name

db

操作的数据库,可能为null

Command

当前sql语句的类型,一般为休眠(sleep),查询(query),连接(connect)

Time

当前进程在当前状态停留的时间,单位秒

State

当前进程的执行状态,大部分的状态切换很快,如果发现某个进程在某个状态阻塞很久说明sql执行可能有问题

Info

进程详情信息,如select查询进程此处会是select语句

阅读全文 »

从厦门回广州也有一段时日,终于有心思又折腾起博客来。

从最开始自己写的简陋的博客程序,接着转Wordpress,再之后就是托管在github gh-pages的静态页面,辗转多次积攒许久的博客已无影踪,就像丢失一件陪伴多年很少用的劳什子,依然会心有戚戚,毕竟是’我’的东西,就如已消逝的过去的我的遗物,没经过’他’的同意擅自丢弃,也不太好吧。

所以就重新开始权当对过去的一点补偿,关于生活,关于工作,关于兴趣或多或少都要表达出来,要么是话语要么就是文字,希望自己能坚持下去,加油 😬

0%