2014-01-23 43 views
0

我一直在嘗試對服務器上的mysql數據庫進行一些優化。我在Percona工具中通過嚮導,拿走了他們給我的my.cnf。每次我去重新啓動與該文件的MySQL它不起作用。我已經改變了套接字和pid的位置以匹配舊的。這是我的。MySQL無法使用Percona Tools中的新my.cnf文件引導

舊my.cnf文件。

# 
# The MySQL database server configuration file. 
# 
# You can copy this to one of: 
# - "/etc/mysql/my.cnf" to set global options, 
# - "~/.my.cnf" to set user-specific options. 
# 
# One can use all long options that the program supports. 
# Run program with --help to get a list of available options and with 
# --print-defaults to see which it would actually understand and use. 
# 
# For explanations see 
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html 

# This will be passed to all mysql clients 
# It has been reported that passwords should be enclosed with ticks/quotes 
# escpecially if they contain "#" chars... 
# Remember to edit /etc/mysql/debian.cnf when changing the socket location. 
[client] 
port   = 3306 
socket   = /var/run/mysqld/mysqld.sock 

# Here is entries for some specific programs 
# The following values assume you have at least 32M ram 

# This was formally known as [safe_mysqld]. Both versions are currently parsed. 
[mysqld_safe] 
socket   = /var/run/mysqld/mysqld.sock 
nice   = 0 

[mysqld] 
# 
# * Basic Settings 
# 
user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
lc-messages-dir  = /usr/share/mysql 
skip-external-locking 
# 
# Additional Settings 
max_connections=500 
# 
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address   = lcscourses.net 
# 
# * Fine Tuning 
# 
key_buffer   = 64M 
max_allowed_packet  = 64M 
thread_stack   = 768K 
thread_cache_size  = 8 
# This replaces the startup script and checks MyISAM tables if needed 
# the first time they are touched 
myisam-recover   = BACKUP 
max_connections  = 500 
#table_cache   = 64 
#thread_concurrency  = 10 
# 
# * Query Cache Configuration 
# 
query_cache_limit  = 16M 
query_cache_size  = 64M 
# 
# * Logging and Replication 
# 
# Both location gets rotated by the cronjob. 
# Be aware that this log type is a performance killer. 
# As of 5.1 you can enable the log at runtime! 
#general_log_file  = /var/log/mysql/mysql.log 
#general_log    = 1 
# 
# Error log - should be very few entries. 
# 
log_error = /var/log/mysql/error.log 
# 
# Here you can see queries with especially long duration 
#log_slow_queries  = /var/log/mysql/mysql-slow.log 
#long_query_time = 2 
#log-queries-not-using-indexes 
# 
# The following can be used as easy to replay backup logs or for replication. 
# note: if you are setting up a replication slave, see README.Debian about 
#  other settings you may need to change. 
#server-id   = 1 
#log_bin    = /var/log/mysql/mysql-bin.log 
expire_logs_days  = 10 
max_binlog_size   = 10M 
binlog_do_db   = include_database_name 
#binlog_ignore_db  = include_database_name 
# 
# * InnoDB 
# 
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. 
# Read the manual for more InnoDB related options. There are many! 
# 
innodb_buffer_pool_size=256M 
innodb_additional_mem_pool_size=20M 
# * Security Features 
# 
# Read the manual, too, if you want chroot! 
# chroot = /var/lib/mysql/ 
# 
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". 
# 
# ssl-ca=/etc/mysql/cacert.pem 
# ssl-cert=/etc/mysql/server-cert.pem 
# ssl-key=/etc/mysql/server-key.pem 



[mysqldump] 
quick 
quote-names 
max_allowed_packet  = 32M 

[mysql] 
#no-auto-rehash  # faster start of mysql but no tab completition 

[isamchk] 
key_buffer   = 16M 

# 
# * IMPORTANT: Additional settings that can override those from this file! 
# The files must end with '.cnf', otherwise they'll be ignored. 
# 
!includedir /etc/mysql/conf.d/ 

新my.cnf文件

[mysql] 

# CLIENT # 
port       = 3306 
socket       = /var/run/mysqld/mysqld.sock 

[mysqld] 

# GENERAL # 
user       = mysql 
default-storage-engine   = InnoDB 
socket       = /var/run/mysqld/mysqld.sock 
pid-file      = /var/run/mysqld/mysqld.pid 

# MyISAM # 
key-buffer-size    = 32M 
myisam-recover     = FORCE,BACKUP 

# SAFETY # 
max-allowed-packet    = 16M 
max-connect-errors    = 1000000 

# DATA STORAGE # 
datadir      = /var/lib/mysql/ 

# BINARY LOGGING # 
log-bin      = /var/log/mysql/mysql-bin.log 
expire-logs-days    = 14 
sync-binlog     = 1 

# CACHES AND LIMITS # 
tmp-table-size     = 32M 
max-heap-table-size   = 32M 
query-cache-type    = 0 
query-cache-size    = 0 
max-connections    = 500 
thread-cache-size    = 50 
open-files-limit    = 65535 
table-definition-cache   = 4096 
table-open-cache    = 4096 

# INNODB # 
innodb-flush-method   = O_DIRECT 
innodb-log-files-in-group  = 2 
innodb-log-file-size   = 128M 
innodb-flush-log-at-trx-commit = 1 
innodb-file-per-table   = 1 
innodb-buffer-pool-size  = 2G 

# LOGGING # 
log-error      = /var/log/mysql/error.log 
log-queries-not-using-indexes = 1 
slow-query-log     = 1 
slow-query-log-file   = /var/lib/mysql/mysql-slow.log 

試圖重新啓動後,錯誤日誌

14:56:30 [Note] /usr/sbin/mysqld: Shutdown complete 

14:56:31 [Note] Plugin 'FEDERATED' is disabled. 
14:56:31 InnoDB: The InnoDB memory heap is disabled 
14:56:31 InnoDB: Mutexes and rw_locks use GCC atomic builtins 
14:56:31 InnoDB: Compressed tables use zlib 1.2.3.4 
14:56:31 InnoDB: Initializing buffer pool, size = 1.0G 
14:56:31 InnoDB: Completed initialization of buffer pool 
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 
InnoDB: than specified in the .cnf file 0 134217728 bytes! 
14:56:31 [ERROR] Plugin 'InnoDB' init function returned error. 
14:56:31 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
14:56:31 [ERROR] Unknown/unsupported storage engine: InnoDB 
14:56:31 [ERROR] Aborting 

回答

1

您需要刪除舊的InnoDB日誌文件,大小在新的my.cnf

被改變

鑑於此,只需執行以下步驟:

啓動MySQL與舊的my.cnf採取備份更安全的一邊,然後執行以下操作

1. mysql -uroot -p... -e"SET GLOBAL innodb_fast_shutdown = 0" 
2. service mysql stop 
rm -f /var/lib/mysql/ib_logfile[01] 
3. service mysql start 

Step 3 will recreate ib_logfile0 and ib_logfile1 
+0

它的工作,但我遇到了一個問題,在新的my.cnf我得到它不能夠的錯誤寫入數據庫。我剛剛啓動了舊的my.cnf,一切正常。 – nwestfall

+0

也許是因爲用戶....嘗試評論這一行:user = mysql – Hackerman