my.cnf中mysqld的socket=/tmp/socket3306.sock
[client] 中socket=/tmp/socket3306.sock
[mysql]中socket=/tmp/socket3306.sock但是mysql -uroot -p连接数据库必须使用-S指定socket的位置,不指定就报错:
error 2002:can't connect to local mysql server through socket '/tmp/mysql.sock'
看得出mysql还是在找/tmp/mysql.sock而不是/tmp/socket3306.sock
为什么my.cnf中mysql中的设置不起作用?

解决方案 »

  1.   

    你修改的my.conf可能不是mysqld默认加载的配置文件  使用下列命令查询mysqld加载的是哪个配置文件
    [root@iZ25md9ryqxZ ~]# which mysqld
    /usr/local/mysql/bin/mysqld
    [root@iZ25md9ryqxZ ~]# /usr/local/mysql/bin/mysqld --verbose --help | grep -A 1 'Default options'
    2016-10-20 10:23:13 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.30) starting as process 21019 ...
    2016-10-20 10:23:14 21019 [Note] Plugin 'FEDERATED' is disabled.
    Default options are read from the following files in the given order:
    /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf 
    2016-10-20 10:23:14 21019 [Note] Binlog end
    2016-10-20 10:23:14 21019 [Note] Shutting down plugin 'MyISAM'
    2016-10-20 10:23:14 21019 [Note] Shutting down plugin 'CSV'希望能帮到你 
      

  2.   

    额  格式出问题了  手写一遍吧 首先 
    which mysqld  查询处mysqld的目录然后 
    /usr/local/mysql/bin/mysqld --verbose --help | grep -A 1 'Default options'
    就可以查出来到底加载了哪个配置文件了
      

  3.   

    进数据库看看你设置的生效了没
    show variables like '%socket%';
      

  4.   

    配置生效了,但mysql连接还是得加上—S
      

  5.   


    加载的配置文件是安装目录下的my.cnf,但配置文件中的mysql下的socket还是不起作用。