mysql 笔记

在这里先介绍下sqlite 超轻量级的关系数据库管理系统,以下大部分语句可以在其中执行。不过,最好还是自己装个mysql或者mariadb。
html5中有websql,它用的就是sqlite。so,准备了一个页面,可以直接在里面执行语句,由于sqlite的局限性,不支持存储过程。一些查询,视图,触发器,还是可以的。

#登陆
mysql -uroot -p

#列出所有数据库
show databases;

#创建数据库
create database databaseName;

#删除数据库
drop database databaseName;

#切换数据库
use databaseName;

#列出当前数据库内所有表
show tables;

#新建表
create table person (id int auto_increment primary key,LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255), year int);
/*
常用数据类型

数字类型	int float decimal
字符串类型	char varchar enum
日期类型	timestamp
*/
#显示表结构
desc tableName;

#清空表
delete from tableName;
truncate tableName;

#删除表
drop table person;

#修改表名
alter table person rename persons;

#添加新列
alter table persons add birthday date;

#删除列
alter table persons drop column birthday;

#修改列名
alter table persons change City 城市 varchat(255);

#查询数据
select 列名 from 表名 where 条件;
#连表查询 子查询 //以后再fake数据填坑。。。。

#插入数据
insert into tableName (filed,filed,filed) values (value,value,value)
insert into tableName values (value,value,value) /*必须按照表结构插入*/

#更新数据
update tableName set filedName = newValue where filedName = oldValue

#删除数据
delete from tableName where filedName = value;
#索引 视图 存储过程 触发器 //待填坑

ICEcoder & codiad

两款基于web的ide,呃,至少编辑器的功能都是具备的。

ICEcoder安装简单,git clone 下,再配置下权限就可以用了。不过,只有14天的试用期,然后10刀解锁。或者使用之前的版本,比如现在5.0的是免费的。编辑器是CodeMirror
很好很强大,代码补全,代码高亮,代码折叠,括号补全,自动缩进,函数列表。。。。。
下面是ICEcoder的界面,很细腻紧凑。

下面是codiad

codiad安装稍微麻烦点。

git clone https://github.com/Codiad/Codiad.git
cd Codiad
cp config.example.php config.php
chown www-data:www-data ./ -R

然后就可以打开网页配置了。
因为是直接克隆的官方的仓库,所以这个版本算是night build,所以,最好还是下载release,然后解压安装。编辑器是ACE
嗯,两个都可以和git集成,也都有diff,搜索功能各有千秋。不过codiad支持水平分割,垂直分割面板,而ICEcoder只有单一面板和diff面板。更重要的是codiad体验比ICEcoder更好,而且可以通过插件支持emmet。

你没看错,都不需要数据库的支持 🙂

手动修复grub2启动

在easybcd手欠点了保存设置,然后我的fedora24就悲剧了。。还好easybcd可以安装grub启动项。
重启进入grub
grub> uuid //查看硬盘分区
grub> root=(hd0,1) //进入第一个分区,等同于 cd /
grub> kernel /vmlinuz-4.7.7-200.fc24.x86_64 root=/dev/mapper/fedora_localhost-root //配合tab自动补全
//root可以参考grub.cfg
grub> cat (hd0,1)/grub2/grub.cfg //嗯,必须要绝对路径
grub> initrad /initramfs-4.7.7-200.fc24.x86_64.img //同样参考grub.cfg kernel必须在initrad前面,而且root参数必须正确
grub> boot //启动
进入系统后,记得重新安装grub2配置
$ grub2-install /dev/sda

wordnet-lite 开发小结

需求很简单,解决很暴力。
前端很大一部分是纯javascript,没有第三方依赖的库,框架。嗯,借鉴了jQuery的 $ 选择元素。。。

css写在了index里,减少了个http请求

所有js都在一个立即执行的匿名函数里,虽然不符合jslint,但是完全封闭,安全些。

动态加载html用的大部分是dom函数,虽然有点乱,但比直接写清晰些html。

所有click事件统一处理,彻底解决了不要在循环里定义函数。。。

关于#!这个问题,用的很正常的url,js判断location.pathname,然后处理路由。很暴力,完全无视seo。

分页,因为get的数据不大,全部存到localStorage中,直接slice

异常处理,基本都是日常调试的时候加的。不能说测试。。没有测试文件。。。

国际化也很暴力,字段存到对象里,根据navigator.language判断,如果不支持用户的语言,直接默认英文

很好的利用了localStorage,减少了很多不必要的请求。所以速度也飞快。

请求ajax时加了个mask遮罩层,想加动画来着,不过,估计动画比整个程序都大,算了

页面很长的时候,虽然没加goTOP,但是对用户体验还是有很大的提升。不信找个百度百科页面,把页面拉到下面,然后打字试试。
还是看代码吧

document.addEventListener("scroll", function () {
    if (window.scrollY !== 0) {
        $("input.word").blur();
    } else {
        $("input.word").focus();
    }
});

后端php负责api,http服务器负责伪静态重定向。。。

后端还处理了很重要的东西,base标签的值
没有它,ajax还有history全部瘫痪。。有了它,不用到处去配置url

<base href="/<?=APP_HOME?>/">

遗憾的是没能折腾个简单的前端模板。嗯,api也是完全暴露的,没有任何认证过滤限制机制,数据量很小,而且后端做的不错。。。等把算法学精了再加吧

记一次备份 重装 恢复

备份

$ mysqldump --all-databases --lock-all-tables -uroot -p > data.sql
$ tar cf html.tar /var/www/

重装

$ vi /etc/apt/sources.list
$ wget https://www.dotdeb.org/dotdeb.gpg
$ apt-key add dotdeb.gpg
$ apt-get update
$ apt-get install nginx php5 mysql-server php5-mysql php5-mcrypt php5-curl  varnish php5-memcache memcached python-pip fish zsh htop dnsutils curl
$ php -v
$ service apache2 restart
$ passwd
$ pip install shadowsocks
$ apt-get upgrade

恢复
安装mysql-server后,直接恢复整个数据库,成功.
执行 /usr/bin/mysql_secure_installation后,删除了一些账户.添加/etc/mysql/debian.cnf中的账户,并添加权限.
如果启动mysql服务出现”Cannot load from mysql.proc. The table is probably corrupted。”需要对数据库数据进行升级,mysql_upgrade -uroot -p 请提前删除/var/mysql/performance_schema/.

scp上传文件如果意外中断了,rsync -P 后面参数一样,可以续传.以防万一,最好sha256sum校验下.
安装包,如果强制中断了,可以执行dpkg -P packgae_name,再重新安装

隐藏apache版本
/etc/apache2/apache2.conf
ServerTokens ProductOnly
ServerSignature Off
隐藏php版本
/etc/php5/apache/php.ini
expose_php Off