尝试在/etc/my.cnf中设置数据库的默认字符集,现在[client]下设置了客户端的默认字符集default-character-set=utf8,可以成功启动数据库,设置也生效了。然后尝试设置[mysqld]的默认字符集,在[mysqld]下添加default-character-set=utf8,这时就无法启动服务了:
启动命令:
[root@localhost ~]# service mysql start
Starting MySQL....The server quit without updating PID file (/home/mysql/localhost.localdomain.pid).                                              [FAILED]

之前mysql是可以成功启动的,与selinux无关,与default-character-set=utf8在/etc/my.cnf中[mysqld]下的位置也无关。err日志:
[root@localhost ~]# tail /home/mysql/*.err
120131 18:09:01  InnoDB: Waiting for the background threads to start
120131 18:09:03 InnoDB: 1.1.8 started; log sequence number 583161363
120131 18:09:03 [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
120131 18:09:03 [ERROR] Aborting120131 18:09:03  InnoDB: Starting shutdown...
120131 18:09:04  InnoDB: Shutdown completed; log sequence number 583161363
120131 18:09:04 [Note] /usr/sbin/mysqld: Shutdown complete120131 18:09:04 mysqld_safe mysqld from pid file /home/mysql/localhost.localdomain.pid ended谢谢!

解决方案 »

  1.   

    你的mysql具体的版本号是多少?
    最新的mysql使用的不是这个变量。
      

  2.   

    [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
      

  3.   

    mysql> status
    - - - - - - - 
    mysql  Ver 14.14 Distrib 5.5.19, for Linux (i686) using readline 5.1
    ...
    Server version:         5.5.19-log MySQL Community Server (GPL)
    Protocol version:       10
    ...
      

  4.   

    谢谢,就是这个问题~~服务器端默认字符集设置,在[mysqld]下面添加:
    5.5.19版本的是:  character_set_server
    之前的版本的是:  default-character-set客户端默认字符集设置,在[client]下添加:default-character-set