Browsing the archives for the mysql tag

删除MySQL二进制日志的3种方法

in mysql

1.RESET MASTER 可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个新的二进制日志文件 2.PURGE MASTER LOGS 语法 PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date' 用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。 (1).用reset master命令删除所有日志,新日志重新从000001开始编号 (2).用purge master logs to 'mysq-bin.******' 命令可以删除指定编号前的所有日志 (3).用purge master logs to before 'YYYY-MM-DD HH24:MI:SS'命令可以删除'YYYY-MM-DD HH24:MI:SS'之前的产生的所有日志 (4).可以在my.cnf中指定--expire_logs_days=#,此参数设置了binlog日志的过期天数

0 Comments

怎么提高Mysql执行sql导入的速度

in mysql

1、如果mysql的data数据很少,内存足够大,可以把data防止到内存盘中。 linux如下设置内存盘: mount -t ramfs none /ram 默认使用内存一半 如果内存不够大,系统有多个硬盘,则把mysql应用程序和data目录分开到不同硬盘上。 2、mysql的表设置为myiasm,比同等条件下的innodb能快20倍以上 3、导入完成以后才创建数据库索引 4、导入完成以后根据需要转换为其他engine,比如innodb 5、多条数据插入一个表,可以使用多记录方式: insert into tablename values(’xxx’,'xxx’),(’yyy’,'yyy’)…; 6、如果多个mysql执行导入,可以使用delayed insert delayed into tablename values(’sss’,’ssss’); 7、大文件sql文件可以用split分成多份再导 8、同等条件下,redhat比ubuntu强很多(几乎肯定) 9 性能调整技巧(Performance tuning tips)

0 Comments

FreeBSD下安装mysql支持GBK字符集

in 服务器类

在FreeBSD下安装mysql支持GBK字符集: #cd/usr/ports/databases/mysql51-server # make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean # cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf mysqld中加入bind_address=127.0.0.1 #rehash #mysql_install_db #chown –R mysql:mysql /var/db/mysql #/usr/local/etc/rc.d/mysql-server forcestart #/usr/local/bin/mysqladmin -u root password 'new-password' 有的教程说还需要同时指定"WITH_COLLATION=gbk_chinese_ci"这一项,我没有加上,不知道以后会不会有问题出现的. Mysql 支持的字符集简介 mysql 服务器可以支持多种字符集(可以用 show character set 命令查看所有 mysql 支持的字符集),在同一台服务器、同一个数据库、甚至同一个表的不同字段都可以指定使用不同的字符集,相比 oracle 等其他数据库管理系统,在同一个数据库只能使用相同的字符集,mysql 明显存在更大的灵活性。 mysql 的字符集包括字符集( CHARACTER )和校对规则( COLLATION )两个概念。字符集是用来定义 mysql 存储字符串的方式,校对规则则是定义了比较字符串的方式。字符集和校对规则是一对多的关系 , MySQL [...]

0 Comments

Linux环境把Mysql和Apache加入到系统服务里面

in 服务器类

Linux下注册Apache与MySQL为系统服务 Apache加入到系统服务里面: cp /安装目录下/apache/bin/apachectl /etc/rc.d/init.d/httpd 修改httpd 在文件头部加入如下内容: ### # Comments to support chkconfig on RedHat Linux # chkconfig: 2345 90 90 # description:http server ### 保存 在打入 #chkconfig --add httpd #chkconfig --level 345 httpd on MySQL加入到系统服务里面 cp  /usr/local/mysql/share/mysql/mysql.server      /etc/init.d/mysqld #把msql的脚本文件拷到系统的启动目录下 cd /etc/init.d/ chkconfig --add mysqld                       [...]

0 Comments

Mysql中的sync_binlog参数

in mysql

http://blog.sina.com.cn/s/blog_4d8a2c970100f531.html sync_binlog=1 or N This makes MySQL synchronize the binary log’s contents to disk each time it commits a transaction 默认情况下,并不是每次写入时都将binlog与硬盘同步。因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃,有可能binlog中最后的语句丢 失了。要想防止这种情况,你可以使用sync_binlog全局变量(1是最安全的值,但也是最慢的),使binlog在每N次binlog写入后与硬盘 同步。即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。如果使用InnoDB表,MySQL服务器 处理COMMIT语句,它将整个事务写入binlog并将事务提交到InnoDB中。如果在两次操作之间出现崩溃,重启时,事务被InnoDB回滚,但仍 然存在binlog中。可以用--innodb-safe-binlog选项来增加InnoDB表内容和binlog之间的一致性。(注释:在MySQL 5.1中不需要--innodb-safe-binlog;由于引入了XA事务支持,该选项作废了),该选项可以提供更大程度的安全,使每个事务的 binlog(sync_binlog =1)和(默认情况为真)InnoDB日志与硬盘同步,该选项的效果是崩溃后重启时,在滚回事务后,MySQL服务器从binlog剪切回滚的 InnoDB事务。这样可以确保binlog反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收 回滚的语句)。 不过有用户遇到下面的情况: http://qiang2260-126-com.javaeye.com/blog/684598 查看MySQL手册,说将sync-binlog设置为1,可以提高复制的可靠性,为了确保客户数据的高可靠性,我将此项设置为1。有一个表涉及到和外界数据的同步,每隔一个小时都有一次PreparedStatment的批量数据写入。未开启二进制日之前,一直速度很快。打开了之后,批量插入的速度下降了130倍。 郁闷了几天,终于找到原因,是设置sync-binlog=1引起的,将其关掉后,一切恢复正常。 如果程序里面有批量操作,一定不能打开sync-binlog,否则会引起性能极大下降(上面已经介绍过)。

0 Comments

FreeBSD中mysql51升级到mysql55教程

in 服务器类

首先升级客户端 #portmaster -o /usr/ports/databases/mysql55-client /usr/ports/databases/mysql51-client 这一步将会安装cmake~ 再升级服务器端(需要重新指定一下原来的字符集) #portmaster -o databases/mysql55-server databases/mysql51-server 由于新升级的mysql部分文件权限默认只有读的权限,所以这里修改一下执行文件权限和mysql存放data的目录权限为可写 #mysql_install_db #chown -R mysql:mysql /var/db/mysql 重启动服务 #/usr/local/bin/mysqld_safe & 下面我们升级 #mysql_upgrade -u root -p password 修改配置文件 重新拷贝/usr/local/share/mysql中的配置文件或者自行修改/etc/my.cnf,将之前的skip-locking(已经无效)修改为skip-external-locking。 升级的过程中,发现一些字符集数据库不支持了,如gbk,gb2312,请在执行升级服务器端的时候重新指定一下字符集 来源:http://bbs.chinaunix.net/thread-1838148-1-1.html

0 Comments

show slave status 参数详解

in mysql

有关mysql主从复制原理请参考:http://blog.haohtml.com/archives/11507 Slave_IO_State:等待 master 发生事件 Master_Host:当前的主服务器主机 Master_User:被用于连接主服务器的当前用户 Master_Port:当前的主服务器接口 Connect_Retry:master-connect-retry选项的当前值 Master_Log_File:SLAVE中的I/O线程当前正在读取的主服务器二进制日志文件的名称 Read_Master_Log_Pos:在当前的主服务器二进制日志中,SLAVE中的I/O线程已经读取的位置 Relay_Log_File:SQL线程当前正在读取和执行的中继日志文件的名称 Relay_Log_Pos:在当前的中继日志中,SQL线程已读取和执行的位置 Relay_Master_Log_File:由SQL线程执行的包含多数近期事件的主服务器二进制日志文件的名称 Slave_IO_Running:I/O线程是否被启动并成功地连接到主服务器上 Slave_SQL_Running:SQL线程是否被启动 Replicate_Do_DB:replicate-do-db选项的当前值

0 Comments

CentOS下MySql 5.0.x的安装、优化及安全设置

in 服务器类

下载页面:http://dev.mysql.com/downloads/mysql/5.0.html#downloads 到页面底部,找到Source downloads,这个是源码版本,下载第1个Tarball groupadd mysql 新建一个名为mysql的用户组 useradd -g mysql mysql 在mysql用户组下新建一个名为mysql的用户 gunzip < mysql-VERSION.tar.gz | tar -xvf - 解压下载到的.gz文件 cd mysql-VERSION 进入解压后的目录 CFLAGS="-O3 -mcpu=pentium4" CXX=gcc CXXFLAGS="-O3 -march=pentium4 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/home/mysql/ --without-debug   --with-unix-socket-path=/home/mysql/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=gbk,gb2312,utf8 --without-innodb --without-isam --with-pthread --enable-thread-safe-client 配置mysql gcc的相关参数:

0 Comments

MySQL性能优化详解

in mysql

MySQL数据库性能优化是本文的主要核心,将从数据库的优化设计,到具体的操作。好的优化能使服务器性能提升较大的空间,希望本文对大家有所帮助。 1. MySQL性能优化简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。 优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。 2. 数据库设计和查询优化 在MySQL性能优化中,首先要考虑的就是Database Schema设计,这一点是非常重要的。一个糟糕的Schema设计即使在性能调优的MySQL Server上运行,也会表现出很差的性能;和Schema相似,查询语句的设计也会影响MySQL的性能,应该避免写出低效的SQL查询。这一节将详细讨论这两方面的优化。 2.1 Schema Design

0 Comments

基于FreeBSD 8.0 Ports配置nginx+php+mysql高性能web平台【解决方案】

in 服务器类

作者:Coralzd 博客:http://www.freebsdsystem.org 论坛:http://www.linuxtone.org (IT运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 文档版本 V1.4 最后修改: 2010.6.10 09:33 FreeBSD简介: FreeBSD,是AT&T的后裔间接通过Berkeley Software Distribution(BSD)伯克利软件发行版UNIX,其漫长而动荡的历史可以追溯到1993年。不同于Linux发行版,这被定义为集成 Linux内核和数以千计的应用软件组成的解决方案,FreeBSD是一个紧密集成的操作系统基于BSD kernel和所谓的“userland(用户建造)”(因此,甚至没有额外的扩展程序)。发行版巨大失去了在普通电脑系统安装的机会 ? 像许多Linux发行版本,一个易于安装的(大部分)开放源码的应用扩展提供了FreeBSD的核心,但这些通常是由第三方捐助者提供的和不严格的 FreeBSD的一部分。

0 Comments