MySql Administrator Parte 8
Continuado com o item de menu Startup Variables:
Aba Advanced: A aba advanced nos permite fazer configurações avançadas do MySql, está dividida em cinco seções.
Localization
Para iniciar esta seção, é muito importante falar sobre Character Set e Collation, mas antes vou explicar o que significa isso. Character set é a configuração dos caracteres e seus respectivos códigos, o collation é a configuração de regras para comparação destes caracteres. Suponhamos que temos um quatro letras, “A”, “B”, “a” e “b”, daremos um número a cada letra , “A”= 0, “B”= 1, “a”= 2 e “b”= 3 então temos o caracter “A” e sua codificação, esta combinação forma o Character Set. Muitos conhecem isso como “código de página” ou tabela ASCII.
Suponhamos que queremos comparar ou ordenar duas letras , “A” e “B”, a maneira mais fácil é ver os códigos 0 e 1 respectivamente. Neste caso o que estamos fazendo é aplicar o collation em nosso character set. Como já disse o collation é a regra de comparação desta codificação.
Temos ainda a comparação de letras maiúsculas, de letras minúsculas e de letras maiúsculas e minúsculas. Para isso existe uma regra dentro do collation que faz uma comparação de equivalência das letras , “A”, “B” e “a”, “b”. Nós conhecemos estas regras como case-sensitive (faz a distinção de maiúsculas e minúsculas) e case-insensitive (não faz esta distinção).
Na realidade nos collations existem muitas regras, não só para distinção de letras, mas também de outros símbolos que usamos no dia a dia.
Além disso ainda existem regras para distinção de caracteres acentuados.
O MySql oferece vários recursos sobre isso:
- Armazena expressões usando vários character set.
- Compara expressões usando vários collations.
- Permite especificar o character set e o collation em vários nível, por exemplo: colunas,
tabelas, bancos.
Nesse aspect o MySql e muito mais avançado comparado-se com outros sistemas de gerenciamento de banco de dados (SGDB). Entretanto para usar estes recursos efetivamente, exige que o administrador do banco tenha um conhecimento quais character set e collations estão disponíveis, como alterar o character set padrão e o que esta alteração vai causar nos dados já existentes no banco no caso de ocorrer a mudança após algum tempo de uso do banco.
Para saber quais os character´s sets estão disponíveis no MySql use o comando SHOW CHARACTER SET.
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset | Description| Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5| Big5 Traditional Chinese| big5_chinese_ci|2 |
| dec8| DEC West European| dec8_swedish_ci|1 |
| cp850| DOS West European| cp850_general_ci|1 |
| hp8| HP West European| hp8_english_ci|1 |
| koi8r| KOI8-R Relcom Russian| koi8r_general_ci|1 |
| latin1 | cp1252 West European| latin1_swedish_ci |1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci |1 |
| swe7| 7bit Swedish| swe7_swedish_ci|1 |
| ascii| US ASCII| ascii_general_ci|1 |
| ujis| EUC-JP Japanese| ujis_japanese_ci|3 |
| sjis| Shift-JIS Japanese| sjis_japanese_ci|2 |
| hebrew | ISO 8859-8 Hebrew| hebrew_general_ci |1 |
| tis620 | TIS620 Thai| tis620_thai_ci|1 |
| euckr| EUC-KR Korean| euckr_korean_ci|2 |
| koi8u| KOI8-U Ukrainian| koi8u_general_ci|1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci |2 |
| greek| ISO 8859-7 Greek| greek_general_ci|1 |
| cp1250 | Windows Central European| cp1250_general_ci |1 |
| gbk| GBK Simplified Chinese| gbk_chinese_ci|2 |
| latin5 | ISO 8859-9 Turkish| latin5_turkish_ci |1 |
| armscii8 | ARMSCII-8 Armenian| armscii8_general_ci |1 |
| utf8| UTF-8 Unicode| utf8_general_ci|3 |
| ucs2| UCS-2 Unicode| ucs2_general_ci|2 |
| cp866| DOS Russian| cp866_general_ci|1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci |1 |
| macce| Mac Central European| macce_general_ci|1 |
| macroman | Mac West European| macroman_general_ci |1 |
| cp852| DOS Central European| cp852_general_ci|1 |
| latin7 | ISO 8859-13 Baltic| latin7_general_ci |1 |
| cp1251 | Windows Cyrillic| cp1251_general_ci |1 |
| cp1256 | Windows Arabic| cp1256_general_ci |1 |
| cp1257 | Windows Baltic| cp1257_general_ci |1 |
| binary | Binary pseudo charset| binary|1 |
| geostd8 | GEOSTD8 Georgian| geostd8_general_ci |1 |
| cp932| SJIS for Windows Japanese | cp932_japanese_ci |2 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |3 |
+----------+-----------------------------+---------------------+--------+
Para saber quais collations estão disponíveis no MySql use o comando SHOW COLLATIONS.
mysql> SHOW CHARACTER SET;
+----------------------+----------+-----+---------+----------+---------+
| Collation| Charset | Id | Default | Compiled | Sortlen |
+----------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci| big5| 1 | Yes| Yes|1 |
| big5_bin| big5| 84 || Yes|1 |
| dec8_swedish_ci| dec8| 3 | Yes||0 |
| dec8_bin| dec8| 69 |||0 |
| cp850_general_ci| cp850| 4 | Yes||0 |
| cp850_bin| cp850 | 80 |||0 |
| hp8_english_ci| hp8| 6 | Yes||0 |
| hp8_bin| hp8| 72 |||0 |
| koi8r_general_ci| koi8r| 7 | Yes||0 |
| koi8r_bin| koi8r| 74 |||0 |
| latin1_german1_ci| latin1 | 5 || Yes|1 |
| latin1_swedish_ci| latin1 | 8 | Yes| Yes|1 |
| latin1_danish_ci| latin1 | 15 || Yes|1 |
| latin1_german2_ci| latin1 | 31 || Yes|2 |
| latin1_bin| latin1 | 47 || Yes|1 |
| latin1_general_ci| latin1 | 48 || Yes|1 |
| latin1_general_cs| latin1 | 49 || Yes|1 |
| latin1_spanish_ci| latin1 | 94 || Yes|1 |
| latin2_czech_cs| latin2 | 2 || Yes|4 |
| latin2_general_ci| latin2 | 9 | Yes| Yes|1 |
| latin2_hungarian_ci | latin2 | 21 || Yes|1 |
| latin2_croatian_ci | latin2 | 27 || Yes|1 |
| latin2_bin| latin2 | 77 || Yes|1 |
| swe7_swedish_ci| swe7| 10 | Yes||0 |
| swe7_bin| swe7| 82 |||0 |
| ascii_general_ci| ascii| 11 | Yes||0 |
| ascii_bin| ascii| 65 |||0 |
| ujis_japanese_ci| ujis| 12 | Yes| Yes|1 |
| ujis_bin| ujis| 91 || Yes|1 |
| sjis_japanese_ci| sjis| 13 | Yes| Yes|1 |
| sjis_bin| sjis| 88 || Yes|1 |
| hebrew_general_ci| hebrew | 16 | Yes||0 |
| hebrew_bin| hebrew | 71 |||0 |
| tis620_thai_ci| tis620 | 18 | Yes| Yes|4 |
| tis620_bin| tis620 | 89 || Yes|1 |
| euckr_korean_ci| euckr| 19 | Yes| Yes|1 |
| euckr_bin| euckr| 85 || Yes|1 |
| koi8u_general_ci| koi8u| 22 | Yes||0 |
| koi8u_bin| koi8u| 75 |||0 |
| gb2312_chinese_ci| gb2312 | 24 | Yes| Yes|1 |
| gb2312_bin| gb2312 | 86 || Yes|1 |
| greek_general_ci| greek| 25 | Yes||0 |
| greek_bin| greek| 70 |||0 |
| cp1250_general_ci| cp1250 | 26 | Yes| Yes|1 |
| cp1250_czech_cs| cp1250 | 34 || Yes|2 |
| cp1250_croatian_ci | cp1250 | 44 || Yes|1 |
| cp1250_bin| cp1250 | 66 || Yes|1 |
| gbk_chinese_ci| gbk| 28 | Yes| Yes|1 |
| gbk_bin| gbk| 87 || Yes|1 |
| latin5_turkish_ci| latin5 | 30 | Yes||0 |
| latin5_bin| latin5 | 78 |||0 |
| armscii8_general_ci | armscii8 | 32 | Yes||0 |
| armscii8_bin| armscii8 | 64 |||0 |
| utf8_general_ci| utf8| 33 | Yes| Yes|1 |
| utf8_bin| utf8| 83 || Yes|1 |
| utf8_unicode_ci| utf8| 192 || Yes|8 |
| utf8_icelandic_ci| utf8| 193 || Yes|8 |
| utf8_latvian_ci| utf8| 194 || Yes|8 |
| utf8_romanian_ci| utf8| 195 || Yes|8 |
| utf8_slovenian_ci| utf8| 196 || Yes|8 |
| utf8_polish_ci| utf8| 197 || Yes|8 |
| utf8_estonian_ci| utf8| 198 || Yes|8 |
| utf8_spanish_ci| utf8| 199 || Yes|8 |
| utf8_swedish_ci| utf8| 200 || Yes|8 |
| utf8_turkish_ci| utf8| 201 || Yes|8 |
| utf8_czech_ci| utf8| 202 || Yes|8 |
| utf8_danish_ci| utf8| 203 || Yes|8 |
| utf8_lithuanian_ci | utf8| 204 || Yes|8 |
| utf8_slovak_ci| utf8| 205 | | Yes|8 |
| utf8_spanish2_ci| utf8| 206 || Yes|8 |
| utf8_roman_ci| utf8| 207 || Yes|8 |
| utf8_persian_ci| utf8| 208 || Yes|8 |
| utf8_esperanto_ci| utf8| 209 || Yes|8 |
| utf8_hungarian_ci| utf8| 210 || Yes|8 |
| ucs2_general_ci| ucs2| 35 | Yes| Yes|1 |
| ucs2_bin| ucs2| 90 | | Yes|1 |
| ucs2_unicode_ci| ucs2| 128 || Yes|8 |
| ucs2_icelandic_ci| ucs2| 129 || Yes|8 |
| ucs2_latvian_ci| ucs2| 130 || Yes|8 |
| ucs2_romanian_ci| ucs2| 131 || Yes|8 |
| ucs2_slovenian_ci| ucs2| 132 || Yes|8 |
| ucs2_polish_ci| ucs2| 133 || Yes|8 |
| ucs2_estonian_ci| ucs2| 134 | | Yes|8 |
| ucs2_spanish_ci| ucs2| 135 || Yes|8 |
| ucs2_swedish_ci| ucs2| 136 || Yes|8 |
| ucs2_turkish_ci| ucs2| 137 || Yes|8 |
| ucs2_czech_ci| ucs2| 138 || Yes|8 |
| ucs2_danish_ci| ucs2| 139 || Yes|8 |
| ucs2_lithuanian_ci | ucs2| 140 || Yes|8 |
| ucs2_slovak_ci| ucs2| 141 || Yes|8 |
| ucs2_spanish2_ci| ucs2| 142 || Yes|8 |
| ucs2_roman_ci| ucs2| 143 || Yes|8 |
| ucs2_persian_ci| ucs2| 144 || Yes|8 |
| ucs2_esperanto_ci| ucs2| 145 || Yes|8 |
| ucs2_hungarian_ci| ucs2| 146 || Yes|8 |
| cp866_general_ci| cp866| 36 | Yes||0 |
| cp866_bin| cp866| 68 |||0 |
| keybcs2_general_ci | keybcs2 | 37 | Yes||0 |
| keybcs2_bin| keybcs2 | 73 |||0 |
| macce_general_ci| macce| 38 | Yes||0 |
| macce_bin| macce| 43 |||0 |
| macroman_general_ci | macroman | 39 | Yes||0 |
| macroman_bin| macroman | 53 |||0 |
| cp852_general_ci| cp852| 40 | Yes ||0 |
| cp852_bin| cp852| 81 |||0 |
| latin7_estonian_cs | latin7 | 20 |||0 |
| latin7_general_ci| latin7 | 41 | Yes||0 |
| latin7_general_cs| latin7 | 42 |||0 |
| latin7_bin| latin7 | 79 |||0 |
| cp1251_bulgarian_ci | cp1251 | 14 |||0 |
| cp1251_ukrainian_ci | cp1251 | 23 | ||0 |
| cp1251_bin| cp1251 | 50 |||0 |
| cp1251_general_ci| cp1251 | 51 | Yes||0 |
| cp1251_general_cs| cp1251 | 52 |||0 |
| cp1256_general_ci| cp1256 | 57 | Yes||0 |
| cp1256_bin| cp1256 | 67 |||0 |
| cp1257_lithuanian_ci | cp1257 | 29 |||0 |
| cp1257_bin| cp1257 | 58 | ||0 |
| cp1257_general_ci| cp1257 | 59 | Yes||0 |
| binary| binary | 63 | Yes| Yes|1 |
| geostd8_general_ci | geostd8 | 92 | Yes||0 |
| geostd8_bin| geostd8 | 93 |||0 |
| cp932_japanese_ci| cp932| 95 | Yes| Yes|1 |
| cp932_bin| cp932| 96 || Yes|1 |
| eucjpms_japanese_ci | eucjpms | 97 | Yes| Yes|1 |
| eucjpms_bin| eucjpms | 98 || Yes|1 |
+----------------------+----------+-----+---------+----------+---------+
Espero que tenham entendido melhor sobre character set e collations
Agora vamos falar sobre as opção da seção localization
Language: Esta configuração nos permite alterar o idioma das mensagens de erro. Quando instalamos o MySql com opção de instalação completa o instalador cria uma Share dentro da pasta do MySql, na pasta Share existem várias pastas com os idiomas disponíveis, e dentro destas pastas existe o arquivo errmsg.sys. Então para fazer esta alteração basta colocar o caminho completo de onde se encontra o arquivo de configuração. Ex: c:\Mysql\share\portuguese.
Nota: Nos testes realizados para fazer este artigo utilizei o seguinte caminho: “C:\Arquivos de programas\MySQL\MySQL Server 5.0\share\portuguese” e ao iniciar reiniciar o Mysql ocorreu um erro informando que o caminho não havia sido encontrado, e foi-me apresentado na mensagem de erro o caminho: “C:\Arquivos de programas\MySQL\MySQL Server 5.0 hare\portuguese”, então tive que colocar o caminho “C:\Arquivos de programas\MySQL\MySQL Server 5.0\\share\portuguese”, com duas barras para funcionar.
Def. Char. Set: Configura character set padrão
Default Collation: Configura o collation padrão
Charsets directory: Este opção permite informar o caminho onde está localizado o character set. Na pasta Share além das pastas com os nomes de idiomas para as mensagens de erro, existe também a pasta “charsets”, onde se encontram os arquivos referentes à configuração dos caracteres.