Mysql

admin on 五月 25th, 2011

mysql 5.5中InnoDB作为默认的数据库存储引擎,mysql-5.1升级mysql到mysql-5.5以后,以下程序需要重新编译安装升级: PHP 5.3.6 cacti spine pureftp 安装 wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.12-linux2.6-x86_64.tar.gz/from/http://mysql.ntu.edu.tw/ tar -C /usr/local -xzf  mysql-5.5.12-linux2.6-x86_64.tar.gz cd /usr/local ln -s mysql-5.5.12-linux2.6-x86_64/ mysql cd /usr/local/mysql mkdir -p /usr/local/mysql/etc/ cp support-files/my-huge.cnf etc/my.cnf sed -i 's/skip-locking/skip-external-locking/' my.cnf sed -i 's/default-character-set/character-set-server/' my.cnf sed -i 's/log_slow_queries/slow_query_log/' my.cnf 修改server-id = 1为服务器ip地址最后几位,或者其它数值: cd /usr/local/mysql/etc/ vim  my.cnf #max_allowed_packet = 1M server-id = 8108 max_allowed_packet [...]

Continue reading about mysql 5.5.12安装和升级

1,107 views
admin on 三月 16th, 2011

查看mysql slow_query_log日志发现有大量写入操作很慢 mysqldumpslow -s t -t 10 veryi-slow.log Count: 11459  Time=11268628044.73s (129127208764609s)  Lock=0.00s (0s)  Rows=0.0 (0), root[root]@localhost   UPDATE `veryi`.`article` SET `view_count`=`view_count`+N WHERE `article_id`=N my.cnf配置为 innodb_flush_method=O_DIRECT innodb_flush_log_at_trx_commit=2 修改为 innodb_flush_method=O_DIRECT innodb_flush_log_at_trx_commit=0 后速度明显提高,写入操作从slow_query_log里面消失。

Continue reading about mysql 写入优化

911 views

设置Mysql的主从复制的主要用途: 1 做备份机器,一旦主服务器崩溃,可以直接启用从服务器作为主服务器 2 可以直接锁定从服务器的表只读,然后做备份数据,这样不会影响主服务器的服务 3 可以处理读写数据库的负载均衡 要点: 从服务器一般需要设置只读,否则容易产生错误导致同步失败 wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.53-linux-x86_64-glibc23.tar.gz/from/http://mysql.mirror.tw/ tar -C /usr/local -xzf mysql-5.1.53-linux-i686-glibc23.tar.gz cd /usr/local ln -s  mysql-5.1.53-linux-i686-glibc23 mysql tar -C /usr/local -xzf  mysql-5.1.53-linux-x86_64-glibc23.tar.gz cd /usr/local ln -s mysql-5.1.53-linux-x86_64-glibc23 mysql cd /usr/local/mysql cp support-files/my-huge.cnf my.cnf mv /etc/my.cnf ~/ mv /etc/rc.d/init.d/mysqld ~/ 修改server-id = 1为服务器ip地址最后几位,或者其它数值: vim  my.cnf server-id = 8108 max_allowed_packet = 64M [...]

Continue reading about centos 5.5 安装 mysql-5.1.53-linux-x86_64 及主从复制集群配置

1,648 views
admin on 八月 27th, 2010

       减少停机时间,以最快的速度升级(upgrade)mysql,升级前建议对新版进行测试。旧版的数据库安装在目录/usr/local/mysql,mysql是一个符号链接。 tar xfz mysql-5.1.50-linux-x86_64-glibc23.tar.gz -C /usr/local/ cd /usr/local/mysql-5.1.50-linux-x86_64-glibc23 /bin/rm -fr data/ /etc/init.d/mysqld stop mv ../mysql/data/ . mv ../mysql/my.cnf . cd .. rm -f mysql ln -s mysql-5.1.50-linux-x86_64-glibc23/ mysql cd /usr/local/mysql/ chown -R root . chown -R mysql data chgrp -R mysql . ./mysql_upgrade -uroot -pvereyi.com /etc/init.d/mysqld start Note:mysql_upgrade包含一下三个命令: # mysqlcheck –check-upgrade –all-databases [...]

Continue reading about MySQL快速安全升级(upgrade)到最新版

1,201 views

ERROR 1419 (HY000): You do not have the SUPER Privilege  and Binary  Logging is  Enabled 导入function 、 trigger 到 MySQL database,报错: “You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)”. 原因: function / trigger 中有dangerous statements修改数据库,错误只在启用binary logging选项进行主从复制的服务器上出现。 解决: 1)导入数据的用户不仅需要CREATE ROUTINE, ALTER ROUTINE, [...]

Continue reading about mysql导入数据提示没有SUPER Privilege权限处理

1,640 views
admin on 七月 15th, 2010

目前最好用的监控mysql InnoDB 数据库的方法之一 http://code.google.com/p/mysql-cacti-templates/ wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.7.tar.gz tar -xzf better-cacti-templates-1.1.7.tar.gz -C /usr/local/src cd /usr/local/src/better-cacti-templates-1.1.7 cp scripts/ss_get_mysql_stats.php /usr/local/www/html/cacti/scripts cd /usr/local/www/html/cacti/scripts vim ss_get_mysql_stats.php $mysql_user = 'cacti'; $mysql_pass = 'cacti'; $mysql_port = 3306; 设置准备监控的数据库的账户相关信息 创建监控Mysql需要的账户以及权限 配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有”process”权限。如果要监控InnoDB状态,还必须有”SUPER”权限。 grant process,super on *.* to 'cacti'@'%' identified by 'cacti'; flush privileges; 帐号测试: cd /usr/local/www/html/cacti/scripts php -q ./ss_get_mysql_stats.php –host 10.88.1.134 –items cv,cx,cy,cz –user cacti [...]

Continue reading about cacti监控(monitor)mysql InnoDB 数据库

1,147 views
admin on 三月 31st, 2010

mysqlslap -hlocalhost -uroot –engine=innodb –auto-generate-sql-write-number=100000 –auto-generate-sql-guid-primary –concurrency=5,50,500 –number-of-queries=500000 –iterations=2 –number-char-cols=10 –number-int-cols=10 –auto-generate-sql –create-schema=sbtest –auto-generate-sql-load-type=mixed Benchmark     Running for engine innodb     Average number of seconds to run all queries: 96.510 seconds     Minimum number of seconds to run all queries: 95.215 seconds     Maximum number of seconds to run all queries: 97.805 seconds     Number [...]

Continue reading about myisam,innodb那个更快一些

560 views

  MYSQL主从复制(replication)采用 RBR 模式后,binlog的格式为"ROW",能解决很多原先出现的主键重复问题。 在一个繁忙的master db server上,binlog日志文件增长速度很快,如果不定时清除,硬盘空间很快就会被充满。 设置自动清理mysql binlog日志,配置my.cnf: expire_logs_days = 10 在运行时修改: show binary logs; show variables like '%log%'; set global expire_logs_days = 10; 清除之前可以采用相应的备份策略。 手动删除10天前的mysql binlog日志: PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY); show master logs; MASTER和BINARY是同义词。 一般情况下,推荐使用MIXED binlog的复制。http://dev.mysql.com/doc/refman/5.1/en/open-bugs-general.html中的说明:Replication uses query-level logging: The master writes the executed queries to the binary log. [...]

Continue reading about 设置自动清理mysql binlog日志和手动删除的方法

4,072 views
admin on 九月 29th, 2009

mysql 5.1.39,建立一个存储过程 BEGIN     IF ISNULL(s) THEN         RETURN ”;     ELSEIF n<15 THEN         RETURN LEFT(s, n);     ELSE         IF CHAR_LENGTH(s) <= n THEN             RETURN s;         ELSE             RETURN CONCAT(LEFT(s, n-10), ‘ … ‘, RIGHT(s, 5));         END IF;     END IF; [...]

Continue reading about 学习mysql 5 权威指南

653 views
admin on 六月 30th, 2009

环境:centos 5 mysql 5主从复制报错: [ERROR] Slave SQL: Error ‘Duplicate entry ‘…’ for key ‘PRIMARY” on query. Default database: ‘blog’. Query: ‘insert into tb_article_peak(…)              values(…’)’, Error_code: 1062 stop slave; desc tb_article_peak; select * from tb_article_peak where peak_id>=’…’; delete tb_article_peak where peak_id>=’…’; start slave; 复制恢复正常。 过一段时间又报错,间隔从几小时到几天不等。 不解。 只好把读写都集中到master db上。 但不应是mysql replication 的问题,因为新的数据产生量很大,如果复制有问题,不会间隔几天才报错。 最后终于找到原因: 某一段代码把连接池弄反,写时调用了读的连接,写到了slave db上。所以产生Duplicate entry。

Continue reading about mysql 主从复制不成功的可能原因

916 views