ipmi 误写成了 IPMI,现在所有的全查出来
select * from IPv4Allocation where name= BINARY UPPER(name);
ipmi 误写成了 IPMI,现在所有的全查出来
select * from IPv4Allocation where name= BINARY UPPER(name);
mysql使用binlog的好处就是很灵活的进行数据恢复
binlog设定不对会使磁盘用满报错,出现这种情况首先将数据库里的binlog清理
根据binlog名进行之前的删除
PURGE {MASTER | BINARY} LOGS TO 'log_name';
例:删除mysql-bin.000123之前的binlog
PURGE MASTER LOGS TO 'mysql-bin.000123';
根据binlog保留的时间进行删除
PURGE {MASTER | BINARY} LOGS BEFORE 'date';
例删除2014-02-19 22:46:26之前的binlog
PURGE MASTER LOGS BEFORE '2014-02-19 22:46:26';
删除7天前的binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);
故障处理完了,现在要对mysql的binlog保留时间进行调整
可在my.cnf中设定参数,重启mysql
expire_logs_days = 7
不能重启mysql,则需要在mysql命令行中设置,需要flush logs,否则参数不生效过些天又会用满
mysql> set global expire_logs_days = 7; mysql> flush logs;
将查询结果保存到文件里, 注意 如果已经存在同名文件,则不会创建。
SELECT…INTO OUTFILE
例子:
select name,ctfid,birthday,mobile,tel,email from info where ctfid like '130000%' into outfile '/tmp/fuping-of-rujia';
同时可以指定分隔符等
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
从文件读取的语法为
LOAD DATA INFILE
同样可以指定分隔符等,例如从csv文件导入:
load data local infile '1-200W.csv' into table `info` fields terminated by ',' lines terminated by '\n';
现在有db1.table1表,现在要将它放到db2中,最简的方法是mysqldump导出,再导入。
另一种方法是
create table db2.table2 as select * from db1.table1;
结构,数据内容一致,但是不会复制索引以及外键
要保持完全一致,则两步操作,先复制表结构,再复制数据
create table db2.table2 like db1.table1; insert into db2.table2 select * from db1.table1;
其实也是使用了select命令
查询表中有多少条记录
select count(*) from table-user;
上面使用了count(*)会使整张表加载到内存,查询效率较低,毕竟是统计数量,使用count(ID)即可,如
select count(ID) from table-user;
用户男女数量统计
select sex,count(ID) from table-user GROUP BY sex;
制作MariaDB的rpm包使用CMake CPack Package Generators,这种制作出来的包叫做CPackRPM包。
首先安装好环境(必须全部检查):
bzr > 2.0
gunzip
GNU tar
gcc 2.95.2 or later
g++
GNU make 3.75 or later
libtool 1.5.24 or later
bison (2.0 for MariaDB 5.5)
libncurses (在centos下名为ncurses-devel)
zlib-dev
GNU automake
GNU autoconf
cmake >= 2.8.7 (在centos下名为cmake28)
使用非root用户,将下载好的mariadb-5.5.31.tar.gz解压,这里是 /home/jpuyy/mariadb-5.5.31。
将要编译的参数写到cmake后面,这里是最关键的是制作rpm包的参数-DRPM=centos6,语句的最后要有一个点号,表示在当前目录生成。
cmake28 -DRPM=centos6 \ -DCMAKE_INSTALL_PREFIX=/usr/local/DBServer/MariaDB5.5.31 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=complex .
当最后几行是如下信息时,表示检查编译通过
-- Configuring done -- Generating done -- Build files have been written to: /home/jpuyy/mariadb-5.5.31
打包
make package
连spec文件都不用写,cmake会自动生成制作rpm的环境,位置在/home/jpuyy/mariadb-5.5.31/_CPack_Packages/Linux/RPM
最后生成的rpm包如下
MariaDB-5.5.31-centos6-x86_64-client.rpm
MariaDB-5.5.31-centos6-x86_64-common.rpm
MariaDB-5.5.31-centos6-x86_64-devel.rpm
MariaDB-5.5.31-centos6-x86_64-server.rpm
MariaDB-5.5.31-centos6-x86_64-shared.rpm
MariaDB-5.5.31-centos6-x86_64-test.rpm
这些包的作用
https://kb.askmonty.org/en/about-the-mariadb-rpm-files/
安装方法:
需要解决冲突和依赖
冲突:查找已经安装的mysql包,rpm -qa ‘mysql*’,移除查找到的mysql包
rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps rpm -e `rpm -qa mysql-libs*` --nodeps
依赖:在执行rpm -ivh MariaDB-5.5.31-centos6-x86_64*时,如果出现依赖,如
error: Failed dependencies:
perl(DBI) is needed by MariaDB-server-5.5.31-1.x86_64
perl(Time::HiRes) is needed by MariaDB-test-5.5.31-1.x86_64
可以yum安装perl-DBI,perl-Time-HiRes。也可以使用
rpm -ivh MariaDB-5.5.31-centos6-x86_64-* --nodeps
不去检测依赖。PS:有些依赖确实无用可不用安装。
参考:
https://kb.askmonty.org/en/source-building-mariadb-on-centos/
https://kb.askmonty.org/en/installing-mariadb-with-the-rpm-tool/