Cannot change charset in MySQL 5.7 (latin to utf8)

I installed MySQL 5.7.8 on my Ubuntu 14.04.

But I can not change the default MySQL encoding. I want to change charset to utf8.

I searched and browsed many articles on the Internet, but every method I tried is not suitable for me.

I already add 'character-set-server = utf8' and 'collation-server = utf8_general_ci' to /etc/mysql/my.cnf. but it does not work ...

How can I change my MySQL encoding? Please answer me!

  • MySQL status

    Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 1 min 24 sec 
  • show variables of type 'c%'

     | 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/ | | check_proxy_users | OFF | | collation_connection | utf8_general_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | | completion_type | NO_CHAIN | | concurrent_insert | AUTO | | connect_timeout | 10 | | core_file | OFF | 
  • my.cnf (in / etc / mysql)

     [mysqld] # # * Basic Settings # character-set-server=utf8 collation-server=utf8_general_ci user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking character-set-server=utf8 collation-server=utf8_general_ci init_connect=set collation_connection=utf8_general_ci init_connect=set names utf8 character-set-client-handshake=FALSE 
+5
source share
1 answer
  • Configuring UTF-8 character set and collation for MySQL server:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

Then press i and add the following:

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

Press Esc , then : w , then : q !

Then restart the server:

 sudo /etc/init.d/mysql restart 

Check configuration:

 mysql> show variables like "%character%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.01 sec) mysql> show variables like "%collation%"; +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | +----------------------+-----------------+ 3 rows in set (0.00 sec) 
  • Setting UTF-8 character set and collation for database and tables:

Specify it explicitly when creating the database:

CREATE DATABASE some_database CHARACTER SET utf8 COLLATE utf8_general_ci;

Check configuration:

 mysql> SHOW CREATE DATABASE ... mysql> SHOW CREATE TABLE ... 
+5
source

Source: https://habr.com/ru/post/1238023/


All Articles