修改MYSQL的innodb_log_file_size导致的MYSQL崩溃
这两天正在测MYSQL的性能,按照MYSQL文档中推荐的设置,修改了几个系统变量
innodb_buffer_pool_size=1G
innodb_log_file_size=250M
innodb_log_buffer_size=8M
结果MYSQL崩了。mysql客户端能登录,但只要执行任何命令,mysqld立刻崩掉。
开始还以为是innodb_buffer_pool_size等几个参数设得太大了,可是调整了几次都不行。
最终发现,把mysql shutdown以后。要把原来的ib_logfile0和ib_logfile1移走,再启动就行了。
看来如果修改了innodb_log_file_size,关闭数据库后,要把旧的ib_logfile移走,再启动数据库。
资料:
http://hi.baidu.com/archieyao/blog/item/78112cfb694ae4126c22eb57.html
相关文档:
Mysql方式:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MysqlDB {
private String strClass = "com.mysql.jdbc.Driver";
private String strDriver = "jdbc:mysql://localhost: ......
详细解释和例子见下列文章:
http://www.mysqlperformanceblog.com/2008/09/03/analyze-myisam-vs-innodb/
http://www.penglixun.com/work/database/mysql_show_index_cardinality.html
(1)cardinality影响mysql optimizer对索引的选取
(2)可以通过show index from table_name来查看表的索引和cardinality
(3)in ......
可以参考下列文章
http://www.mysqlperformanceblog.com/2010/03/23/too-many-connections-no-problem/
结论如下:
(1)mysql默认会给super用户留一个连接,你可以用这个预留的连接来登录,来增加连接数;但是如果连接的用户全是super权限的,则这个预留的连接不存在。这时可以用以下的命令来设置连接数:gdb -p $(cat ......