良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

禁止mysql对本地文件存取

在 mysql 中,提供对本地文件的读取,使用的是 load data local infile 命令,默认在 5.0 版本中,该选项是默认打开的,该操作令会利用 MySQL 把本地文件读到数据库中,然后用户就可以非法获取敏感信息了,假如你不需要读取本地文件,请务必关闭。测试存取测试:首先在测试数据库下建立 sqlfile.txt 文件,用逗号隔开各个字段在测试数据库,先新建一张表,建表的 SQL 语句如下,For Example:create 

阅读全文...

热备份数据库

mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件。有点类似于SQL SEVER的“任务-生成脚本”的逻辑备份功能。mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移、升级。不足之处就是数据库比较大时,mysqldump的效率不高。mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信息,可以使用命令mysqldump –help--add-drop-table    &

阅读全文...

mysql update 去空格

mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数。 (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace 案例:SQL Code复制内容到剪贴板update `news` se

阅读全文...

标签: mysql去空格

作者:良玉 分类:Mysql 浏览:576 评论:0

mysql解决Error1290 xxx secure-file-priv 的问题

Error1290 --secure-file-priv

出现这个问题的原因是因为启动MySQL的时候使用了--secure-file-priv这个参数,这个参数的主要目的就是限制LOAD DATA INFILE或者SELECT INTO OUTFILE之类文件的目录位置,我们可以使用

SELECT @@global.secure_file_priv; 或者SHOW VARIABLES LIKE "secure_file_priv";
查询到你当前设置的路径,默认应该是/var/lib/mysql-files

阅读全文...

mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'

原因是mysqlbinlog工具无法识别binlog中的配置中的default-character-set=utf8指令。两个方法可以解决:一是在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8,但是这需要重启MySQL服务,如果你的MySQL服务正在忙,那这样的代价会比较大。二是用mysqlbinlog --no-defaults 命令打开

阅读全文...

mysql一台服务器多实例做slave的配置方法

Master 1服务器和Slave服务器(3306)主从同步1、 Master 1服务器--查看参数文件,主要查看是否开启binlog和serverid[root@localhost ~]# cat /etc/my.cnflog-bin= mysql-binserver-id =200--登录mysql,赋予slave账号权限,允许该用户可以在主库上读取日志[root@localhost ~]# mysqlmysql> grant replication slave,reload,supe

阅读全文...

mysqlslap压力测试mysql读写性能实例

用到的mysqlslap参数解释如下:

--concurrency=2 两个线程

--iterations=1 执行一次

--number-int-cols=10 10个int型字段
--number-char-cols=10 10个字符串字段
-a 等同于--auto-generate-sql

--auto-generate-sql-add-autoincrement 创建auto increment的主键
--auto-generate-sql-secondary-indexes=2 创建2列索引

--auto-generate-sql-guid-primary 创建guid作为主键

--number-of-queries=10000 所有并发线程的请求次数和
--auto-generate-sql-load-type=write/key/read/update/mixed 测试的query类型
--engine=myisam,innodb 存储引擎


阅读全文...

mysqlslap对mysql进行压力测试

PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用。其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的。下面举例说说。mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。如果是系统自带或者使用rpm包安装的mysql,安装了MySQL-client端的包就有mysqlslap这个工具。

下图是运行mysqlslap -a -c 500 -i 10 -uroot -p123456测试时mysql的连接进程数:


阅读全文...

几百万的数据,mysql快速高效创建索引

  有一个问题,一张表有3百万条记录,随着时间的增加,记录量会更多,此时查询速度很慢。在创建此表前没有未相应字段添加索引,所以此时需要为表添加索引。但是因为数据量大的原因,索引添加不成功,想了很多办法,终于在短时间内解决了。

  办法如下:

  1、进入mysql界面。mysql -uroot -hlocalhost -plovelive gm;

  2、导出相应表的数据。select * from tab into outfile 'tab.txt'; 此处tab.txt文件在mysql的data目录里


阅读全文...

Mysql 重做日志及与二进制日志的区别

Mysql默认情况下会有两个文件:ib_logfile0ib_logfile1,这两个文件就是重做日志文件,或者事务日志。

重做日志的目的:万一实例或者介质失败,重做日志文件就能派上用场。

每个InnoDB存储引擎至少有一个重做日志文件组,每个文件组下至少有2个重做日志文件,如默认的ib_logfile0ib_logfile1InnoDB存储引擎先写重做日志文件1,当达到文件的最后时,会切换至重做日志文件2,当重做日志文件2也被写满时,会再被切换到重做日志文件1中。


阅读全文...

Mysql中primary key主键冲突的可能性与解决方案

        在mysql中,数据的存储其实相当于Oracle的IOT表。主键和其他列的值以b+tree的形式组织在一起,在其叶子节点上不仅包含了主键,还包含了其他列的值。所以,我们在访问以主键作为where条件的查询时,极大的提高了效率。当然,这也存在一个缺点,主键和其他列存在一起,导致主键作为index比其他二级index需要的空间开销更大,所以当我们做recover index scan时,就会需要scan更多的block。除此之外,我们还需要数据按照主键升序排列,所以我们的主键就可能要设置为自增的,以免随机的数字作为主键,导致数据块频繁分裂,而减缓dml的速度。所以,一般情况下,我们会默认给每张表都加上一个自增的id作为主键,这个id的类型依据实际存放的数据量的范围来定。

阅读全文...