坑啊!一个16核64G的RDS跑得比ECS上自己搭的16核32G的MYSQL还慢 …
分类存档: 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提前到一个肯定存在的位置。
Linux+Nginx+PHP+MySQL+MemCached+eaccelerator安装优化记录
近日,某论坛因发展需要,增加了一台服务器,他们装好系统,叫我帮安装服务器环境,数据同步处理并希望做到负载均衡等。以下为过程记录。中间可能会有些过程被跳过,本来想写成教程的,但是年关已近,实在是太多事情需要处理。现只能先把记录发上来,以后看有没有时间重新整理成教程。
需要安装的软件:
Web服务器软件:Nginx 1.0.11
FCGI:PHP 5.2.17
数据库:MySQL 5.1.x(服务器A),MySQL 5.5(服务器B)
服务器优化:MemCached,eaccelerator,google-perftools
实时同步软件:rsync,inotify-tools
以下是两服务器可以相同的操作记录:
最新评论