De acordo com o log, há um erro com uma variável: unknown variable 'default-character-set=utf8'
default-character-set
é uma variável usada para o cliente e não para o servidor.
Eu suspeito que no seu arquivo /etc/mysql/my.cnf
, há uma linha
default-character-set = utf8
na seção [mysqld]
em vez da seção [mysql]
ou [client]
.
Se você quiser forçar seu servidor a executar o conjunto de caracteres UTF8 por padrão, no arquivo my.cnf
, você precisa colocar
character-set-server = utf8
na seção [mysqld]
.
Portanto, o seu arquivo my.cnf
deve ser assim:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
as duas últimas linhas estão lá para reforçar o uso do agrupamento UTF8 'case insensitive' junto com o conjunto de caracteres UTF8.
Uma vez que seu MySQL será iniciado, você pode verificar se o UTF8 é usado emitindo o seguinte comando no prompt do Mysql:
mysql> show variables like 'char%';
dando um resultado como este (para meu próprio servidor - o seu pode ser diferente):
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)