2013-10-24 91 views
1

我试图在Ubuntu 12.04中修改my.cnf文件以微调mysql。我复制粘贴使用此工具创建的文件https://tools.percona.com/wizard错误2002(HY000):my.cnf更新后无法连接到本地MySQL服务器

这并加快MySQL的,但是当我尝试通过CLI访问mysql的,我收到以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13) 

后,我代替我的老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 
     # 
     # Instead of skip-networking the default is now to listen only on 
     # localhost which is more compatible and is not less secure. 
     bind-address  = 127.0.0.1 
     # 
     # * Fine Tuning 
     # 
     key_buffer  = 16M 
     max_allowed_packet = 16M 
     thread_stack  = 192K 
     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  = 100 
     #table_cache   = 64 
     #thread_concurrency  = 10 
     # 
     # * Query Cache Configuration 
     # 
     query_cache_limit = 1M 
     query_cache_size  = 16M 
     # 
     # * 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   = 100M 
     #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! 
     # 
     # * 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 = 16M 

     [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/ 

这里是我的新文件,任何人都可以帮我在这里,看看为什么我的文件更新后出现此错误?由于

# Generated by Percona Configuration Wizard (http://tools.percona.com/) version REL5-20120208 

    [mysql] 

    # CLIENT # 
    port       = 3306 
    socket       = /var/lib/mysql/mysql.sock 

    [mysqld] 

    # GENERAL # 
    user       = mysql 
    default-storage-engine   = InnoDB 
    socket       = /var/lib/mysql/mysql.sock 
    pid-file      = /var/lib/mysql/mysql.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/lib/mysql/mysql-bin 
    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   = 1024 
    table-open-cache    = 2048 

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

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

回答

2

最简单的方法是将所有参考/var/lib/mysql/mysql.sock重置为改变路径到其原始值,即/var/run/mysqld/mysqld.sock。替换/var/lib/mysql/mysql.pid/var/run/mysqld/mysqld.pid也是如此。然后通过/var/log/mysql/error.log/var/lib/mysql/mysql-slow.log/VAR改为/var/lib/mysql/error.log引用/登录/ mysql /下的mysql-的slow.log

替代

或者,你可能会加回款“客户”到新的配置文件,然后更新它的值,以匹配定义的“您的新配置文件(即/var/lib/mysql/mysqld.sock)的“mysqld”部分。

[client] 
    socket  = /var/lib/mysql/mysql.sock 

这样您就可以确保该目录存在,并且是由用户MySQL的写。

+0

奇怪的是,我已经全部换成“在/ var/lib中/ MySQL的”用“/ var/run中/ mysqld的”,我仍然得到错误 – user2028856

+0

对不起,我错过了一些重要的一步,那就是,以确保该目录确实存在并可写入我的用户mysql。查看我更新的解决方案 – jwatkins

+0

你的意思是按目录'/ var/run/mysqld'?如果存在,我已经暂时授予了该权限777.但是,错误仍然存​​在 – user2028856

2

这是一个完整的替换文件。

[client] 
port = 3306 
socket= /var/run/mysqld/mysqld.sock 


[mysqld_safe] 
socket= /var/run/mysqld/mysqld.sock 
nice = 0 


[mysqld] 
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 
bind-address = 127.0.0.1 
key_buffer= 16M 
max_allowed_packet = 16M 
thread_stack = 192K 
thread_cache_size = 8 
myisam-recover= BACKUP 
query_cache_limit= 1M 
query_cache_size = 16M 
log_error = /var/log/mysql/error.log 
expire_logs_days = 10 
max_binlog_size= 100M 

###### Additions ####### 
default-storage-engine= InnoDB 

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

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


log-bin= /var/lib/mysql/mysql-bin 
expire-logs-days= 14 
sync-binlog = 1 

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= 1024 
table-open-cache= 2048 

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

log-queries-not-using-indexes = 1 
slow-query-log = 1 
slow-query-log-file= /var/log/mysql/mysql-slow.log 


[mysqldump] 
quick 
quote-names 
max_allowed_packet = 16M 


[mysql] 
port= 3306 
socket = /var/run/mysqld/mysqld.sock 

[isamchk] 
key_buffer= 16M 

!includedir /etc/mysql/conf.d/ 
+0

使用这个文件我无法启动MySQL出于某种原因。 – user2028856

+0

奇怪...尝试评论(通过在每行前添加“#”)行“###### Additions #######”和行“[mysqldump]”之间的所有行。这样做,除了评论之外,你的文件应该保留原来的形式。MySQL执行得很好吗? – jwatkins

+0

好的,我基本上做的是将工作的my.cnf文件与新工具进行比较,并且只复制看起来最重要的新设置,一次一个。然后我每次都保存并重新启动mysql,以确定哪些引起麻烦,哪些不引发麻烦。现在它工作得很好,我注意到显着的速度提升。我发现的一件事显然是,ubuntu或者mysql,不会让你启动mysql,如果你的my.cnf文件仍然有权限777.我不得不将它更改为755 – user2028856

相关问题