SQL四种语言:DDL,DML,DCL,TCL

1.DDLData Definition Language数据库定义语言statements are used to define the database structure or schema.

DDL是SQL语言的四大功能之一。
用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束
DDL不需要commit.
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME

2.DMLData Manipulation Language数据操纵语言statements are used for managing data within schema objects.

- 阅读全文 -

中文关键字搜索,出现 Illegal mix of collations for operation

  一套老程序,条件查询出现错误[Err] 1271 - Illegal mix of collations for operation 'like',打出sql,放到查询器出现这个报错。

blob.png

错误原理分析以及错误解决方法:

在 MySQL 5.5 以上, 若字段 Type 是 time,date,datetime 

在 select 時若使用 like '%中文%' 会出現 Illegal mix of collations for operation 'like'

在写程序时要对每个字段进行搜索,在执行时可能就会出现时间字段 like '%中文%' 这种语法,

这在比较久的版本MySQL是不会出现错误的。但是升级到MySQL 5.5以上,必需改成like binary '%中文%' 即可避免出现错误


我的是 blob.png,用的mysql5.6,所以就出错了。


blob.png

修改之后的sql,查询成功。

mysql 日志文件mysql-bin文件清除方法

   mysql配置了log-bin,就要设置过期删除的时间要不然会越来越多占满服务器的磁盘。


一、编辑配置文件 vim /etc/my.cnf

expire_logs_days = 10  //二进制日志自动删除的天数。

此方法需要重启mysql服务。


二、无需重启mysql服务

> show binary logs;
> show variables like '%log%';
> set global expire_logs_days = 10;


手动清除binlog文件

PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);   //删除10天前的MySQL binlog日志


Mysql主从复制,实现读写分离

   今天整理下配置主从复制的过程。原理很简单,主库负责插入修改删除,产生log文件,丛库用授权的账号去读mysql操作记录,然后同步。在这里也很感谢我工作中的头,放手让我去做,生产环境配置的时候一同加班给我压阵!

   我的头是一位传奇的人物,关于他说过的话请看 神东语录

   首先服务器上的mysql已经配置完成。我选用的是 5.6.29 版本要统一。

   停掉当前的业务,打包数据库myisam的直接打包数据目录放到FTP目录。在丛库的服务器上FTP到主库,get到从服务器上,保持数据库的一致性。

   创建丛库同步的mysql账号,添加服务器权限( File, Replication Slave, Replication Client ),可以用Navicat去操作。多个丛库,就添加多个允许登陆的ip不一样而已。

- 阅读全文 -