标签存档: MYSQL

mysql 5.5 不重装增加shpinx引擎

项目需要使用到shpinx,网上找到的都是新安装MYSQL+shpinx的多,但 …

继续阅读 »

Windows下Mysql无法启动服务的解决办法

朋友的机器因为停电后,无法启动Mysql服务了.服务管理器那里显示MYSQL已启动.但是,在服务管理器里面,停止,重启和启动按钮全变灰了.

于是叫到我帮处理这个问题.

我先查看MYSQL日志:

120823 15:03:00 [Note] Plugin 'FEDERATED' is disabled.
120823 15:03:00  InnoDB: Initializing buffer pool, size = 187.0M
120823 15:03:00  InnoDB: Completed initialization of buffer pool
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
120823 15:03:00  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
120823 15:03:02  InnoDB: Started; log sequence number 0 44233
120823 15:03:05 [Note] Event Scheduler: Loaded 0 events
120823 15:03:05 [Note] D:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: ready for connections.
Version: '5.1.57-community'  socket: ''  port: 3306  MySQL Community Server (GPL)
121101  0:41:29 [Note] D:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Normal shutdown

121101  0:41:29 [Note] Event Scheduler: Purging the queue. 0 events
121101  0:41:29  InnoDB: Starting shutdown...
121101  0:41:32  InnoDB: Shutdown completed; log sequence number 0 60351755
121101  0:41:32 [Note] D:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: Shutdown complete

原因大概知道了.是因为InnoDb的ibdata 文件和ib_log文件大小不对而引起的.
我再打开他的MY.INI,发现他默认引擎是INNODB.我觉得对一般的网站来说,很多时候都用不到事务处理等高级功能,就没必要用这个引擎,
一是性能方面不如MYISAM,
二来是用这个引擎的数据库,只会变大,不会变小.哪怕你把数据库删除了,数据库文件大小一样还是那么大.
且N个表数据放在一个文件里,一出问题,就全完了.
后来,我帮他修改了MY.INI
#默认使用MyIsam
default-storage-engine=MyIsam
#加大两个文件的缓存大小
innodb_buffer_pool_size=512M
innodb_log_file_size=128M
然后删除MYSQL目录里的localhost.pid(就是因为这个文件的存在,让服务管理面板认为MYSQL已启动了),刷新服务管理面板.好了,看到重启和停止按钮了.接着只要点停止,启动,就可以了.
问题解决了.

继续阅读 »

记录修复因为停电而引起的mysql不同步问题

原来防火墙可能没有保存,停电重启也把防火墙重置了,需要重新添加,这次记得保存!

iptables -A INPUT -s 同步的IP -p tcp –dport 3306 -j ACCEPT
vi /etc/sysconfig/iptables
在倒数第二行之前添加
-A RH-Firewall-1-INPUT -s 同步的IP -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
保存退出。

service iptables save
service iptables restart
=============================================

启动mysql,show slave status发现以下错误信息:

fatal error 1236 from master when reading data from binary log: ‘Client requested master to start replication from impossible position’

是因为从服务器要求同步一个在主服务器上不存在的同步位置而引起的。解决方法就是把这个位置向前或向后移动。一般是向前移,因为这样可以尽可能地减少数据丢失。要这样做,必需在从服务器my.cnf中添加slave-skip-errors=all !

mysql>slave stop;
mysql>change master to master_host=’xxxxx’, master_user=’xxx’, master_password=’xxx’,master_log_file=’xxx-bin.000017′, master_log_pos=616000000;
mysql>slave start;
mysql>show slave status;

说明:
因为停电非法重启,主服务器上有数据丢失,原来pos为616726244,这个POS显然已经不存在了,所以我把POS提前到一个肯定存在的位置。

继续阅读 »

使用Amoeba来构架MySQL分布式数据库环境

Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目。其主要功能包括读写分离,垂直分库,水平分库等,经过测试,发现其功能和稳定性都非常的不错,如果需要构架分布式数据库环境,采用Amoeba是一个不错的方案。目前Amoeba一共包括For aladdin,For MySQL和For Oracle三个版本,本文主要关注For MySQL版本的一个读写分离实现。实际上垂直切分和水平切分的架构也相差不大,改动几个配置就可以轻松实现。

继续阅读 »

MYSQL主从同步时Client requested master to start replication from impossible position的解决办法

MYSQL主从同步时出现”Client requested master to start replication from impossible position”错误的解决方法:
这个错误是因为从服务器请求一个错误的位置而引起的.比如主服务器上的BLIN LOG里没有这个POSITION.
解决原理:
从相关的BIN LOG 里最后一个日志位置,与从服务器上的日志对比,如果LOG里最后位置比错误的位置大,那么,说明中间可能有断点,需要把从服务器的位置向前调,多试几次.
如果在LOG里最后的位置比从服务器指出的位置还小,那么只要把从服务器的位置设置成LOG的最后位置就可以了.

继续阅读 »

google-perftools优化MySQL

在高并发的Web网站服务器中,可以使用google-perftools对MySQL进行优化,下面就来说说如何使用google-perftools优化MySQL.
在阅读这篇文章之前,如果你还未安装google-perftools,请选阅读《如何使用在Linux系统中使用google-perftools优化高并发下的Nginx性能》.
使MySQL支持google-perftools有两种办法.
第一种,适那那些在编译安装的时候没有用–with-mysqld-ldflags=-all-static参数的情况或在新安装的时候使用,就是加上–with-mysqld-ldflags=-ltcmalloc_minimal重新编译,MySQL就会自然支持google-perftools.
配置文件如下:
./configure –prefix=/usr –with-charset=utf8 –with-extra-charsets=gbk \
–with-extra-charsets=gb2312 \
–with-innodb –enable-thread-safe-client –enable-assembler \
–with-readline –with-big-tables \
–with-mysqld-ldflags=-all-static –with-mysqld-ldflags=-ltcmalloc_minimal
第二种就是修改mysqld_safe:
首先要定位mysqld_safe的路径:
[root@server ~]# whereis mysqld_safe
mysqld_safe: /usr/bin/mysqld_safe /usr/share/man/man1/mysqld_safe.1
以上结果得到/usr/bin/mysqld_safe,
vi /usr/bin/mysqld_safe
在# executing mysqld_safe的下一行,加上:
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

继续阅读 »

PHPerHost.com高性能PHP主机,无限域名绑定,5折优惠,50元/年

美国PHP主机1G无限绑米[特]
产品名称: 1GU-A
空间大小: 1G
MySQL个数: 无限个
MySQL大小: 共享1G
每月流量: 15G可绑定域名: 无限个
可绑子目录: 无限个FTP账号个数: 无限个
邮箱个数: 无限个

中文cPanel面板.
PHP 5.2.x+MySQL5+Apache2.2
支持Zend Optimizer v3.3+
支持ionCube PHP Loader v3.3+
支持GD2,.htaccess伪静态,pgSQL,PDO,mySQL,mySQLI等

测试地址:
测试网站:http://cc.phperhost.com/
PHP信息:http://cc.phperhost.com/info.php
探针:http://cc.phperhost.com/tz.php

高级的服务器配置:
操作系统:Linux 64位
内存:12G
CPU: i7 950 3.07GHz (这个CPU够强了)
二级缓存:8M
Raid1磁盘阵列

价格:
¥10.00RMB 每月 使用优惠码admclub后 ¥5元/月
¥30.00RMB 每季 使用优惠码admclub后 ¥15元/季
¥99.00RMB 每年 使用优惠码admclub后 ¥50元/年

官方:http://www.phperhost.com

更多无限绑米美国PHP主机请看:http://billing.phperhost.com/cart.php?gid=16

同样可以得到5折优惠,续费同价,仅对新客户有效.

继续阅读 »

使用google-perftools优化nginx在高并发时的性能完整教程[第二版]

Nginx因为它小巧,占用资源少,非常适合Web站点,越来越多的Linux+Nginx+php+MySQL的站点.在近年逐渐有超过Apache和Lighttpd的趋势.

如果使用googler开发的google-perftools优化Nginx和MySQL的内存管理,性能将会有一定程度的提升.特别是对高并发下的服务器,效果更明显.本教程仅适用于Linux,不适用于Windows.

下面说说如果安装google-perftools,并使Nginx和MySQL支持google-perftools.

今天首先介绍如何优化Nginx:

继续阅读 »

美国40G代理商空间,无限域名,无限子用户,$2.75/月

semoweb.com 推出$2.75每月的40G代理商空间.
40GB Raid Protected Disk space.
350GB Premium Bandwidth

继续阅读 »

美国PHP主机,30G,$8/年

云LINUX驱动
30G空间
300G流量
无限绑米
支持PHP,MYSQL,POSTGRESQL
所有功能不限

价格:$8/年

继续阅读 »