Hoe character_set_database en collation_database naar utf8 in mijn.ini?

Ik heb gegoogled veel over dit probleem. Om samen te vatten, dit is wat mijn my.ini eruit ziet:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[client]
database = abcdef
user = root
password = XXXXXX
default-character-set = utf8

[mysql]
default-character-set=utf8

[mysqld]
character_set_server=utf8
max_connections = 200
init_connect='SET collation_connection = utf8_general_ci' 
init_connect='SET NAMES utf8' 

Als ik in mysql via cmd en probleem: show variables like "%character%";show variables like "%collation%";, dit is wat ik kreeg:

+--------------------------+---------------------------------+
| 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     | utf8                            |
| character_set_system     | utf8                            |
| character_sets_dir       | D:\env\MySQL5.6\share\charsets\ |
+--------------------------+---------------------------------+
8 rows in set (0.00 sec)

+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | utf8_unicode_ci   |
+----------------------+-------------------+

Ik heb al opnieuw de MySQL-service, dus kan iemand een idee geven over hoe om te veranderen character_set_database evenals collation_database te utf8? Bedankt.

  • Kunt u de vermelding van uw versie van MySQL?
InformationsquelleAutor Judking | 2014-03-22

 

3 Replies
  1. 43

    Dit is eigenlijk niet van een instelling in de my.cnf (of my.ini in dit geval). mySQL wordt deze instelling uit de database van de eigen sortering (wanneer het werd gemaakt). Inorder om deze in lijn met de utf8-codering je wilt, doe dan dit:

    ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;

    vervolgens doe een herstart op mysql (kan me niet herinneren als het nodig al), gevolgd door een:

    SHOW VARIABLES;

    Alle goed,
    Hoop dat het helpt!


    side note: ik denk dat default-character-set is verouderd nu-een-dag (mySQL 5.5+) en lijkt te maken van de config file fidgety.

    • Ik vind SHOW variables WHERE variable_name LIKE '%coll%' OR variable_name LIKE '%char%' een mooie samenvatting
    • Ik heb alleen de volgende databases: bugs (voor bugzilla), mysql, information_schema en performance_schema. Ik veranderde bugs en mysql-databases als u voorgesteld (Geen machtigingen voor het wijzigen van performance_schema of information_schema), maar ik heb nog utf8mb4 in character_set_database en character_set_server. Ik ben op zoek te installeren OTRS helpdesk software en het strikt moet utf8. Ook kan ik geen wijzigingen voorgesteld voor mij.cnf, want van een nieuwe versie van mysql. Kan je pls helpen?
    • Kan men voorkomen dat de database opnieuw te starten?
  2. 19

    Ik een overzicht:

    bepalen welke charset/sorteringen zijn beschikbaar

    SHOW CHARSET;
    SHOW COLLATION;

    controleren charset

    SHOW VARIABLES LIKE '%character%';
    SHOW VARIABLES LIKE '%collation%';

    set charset (in het configureren van file -> mijn.cnf)

    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_general_ci

    check database/tabel charset

    SHOW CREATE DATABASE databasename;
    SHOW CREATE TABLE tablename;

    wijzigen van de database/tabel charset

    ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    ingesteld bij het maken van de database/tabel:

    CREATE DATABASE new_db CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
    CREATE TABLE new_table (id INT) CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

    Opmerking
    Ik heb gehoord dat in Mysql utf8 is niet de ware utf8,utf8mb4 is de echte utf8.
    dus, als u speciale tekens die niet kunnen opslaan in mysql, misschien moet u gebruik maken van utf8mb4 en utf8mb4_general_ci

  3. 7

    Het configureren van Character Set en Collation.

    Voor toepassingen die gegevens opslaan met behulp van de standaard MySQL tekenset
    en sortering (latin1, latin1_swedish_ci), er is geen speciale configuratie
    nodig zou zijn. Als toepassingen vereisen data-opslag met behulp van een
    andere tekenset of sorteren, kunt u de tekenset
    informatie op verschillende manieren:

    • Opgeven karakter instellingen per database. Bijvoorbeeld toepassingen
      die gebruik maken van een database nodig utf8, terwijl de toepassingen die
      het gebruik van een andere database nodig sjis.
    • Opgeven karakter instellingen bij het opstarten van de server. Dit zorgt ervoor dat de server
      gebruik de gegeven instellingen op voor alle toepassingen die geen andere
      regelingen.
    • Opgeven karakter instellingen bij de configuratie, als u het bouwen van MySQL
      vanuit de bron. Dit zorgt ervoor dat de server voor het gebruik van de gegeven instellingen voor alle
      toepassingen, zonder dat op te geven bij het opstarten van de server.

    Van de hier getoonde voorbeelden om uw vraag te stellen utf8-tekenset , ook hier stel sorteren voor meer nuttige(utf8_general_ci collatie`).

    Opgeven karakter instellingen per database

      CREATE DATABASE new_db
      DEFAULT CHARACTER SET utf8
      DEFAULT COLLATE utf8_general_ci;

    Opgeven karakter instellingen bij het opstarten van de server

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci

    Opgeven karakter instellingen in MySQL configuratie

    shell> cmake . -DDEFAULT_CHARSET=utf8 \
               -DDEFAULT_COLLATION=utf8_general_ci

    Kan dit lange antwoord, maar er is al weg, die u kunt gebruiken. Hoopvol is mijn antwoord nuttig voor u is. voor meer informatie http://dev.mysql.com/doc/refman/5.7/en/charset-applications.html

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *