utf 8 - mysql change default character set latin1 to utf8 -


i have php 5.5.9 , mysql 5.5.43 innodb. in kubuntu lts /etc/mysql/my.cnf

printf("current character set: %s\n", mysqli_character_set_name($conn));

current character set: latin1

i've tried

default-character-set = utf8

first mysql server didn't restart

then i've tried

character-set-server = utf8

then mysql shell didn't start

how can rescue issue? i've managed init_connect = 'set names utf8' solve problem nonroot users, charset remains same (it displays nonprivileged users utf8, still latin1).

and if (a big if) smnd tell me should use utf8mb4? in my.cnf file? had tables in utf8 , have migrated working utf8mb4 ...

another q: applicable linux (kubuntu) server: https://www.youtube.com/watch?v=3m1wpw4uoom

please me, thanks, gregor lilaum.com

php manual says:

mysqlnd assumes server default charset. charset sent during connection hand-shake/authentication, mysqlnd use.

mysqlnd mysql native driver included php 5.4 , above.

unfortunately, have confirm in system (php 5.6.17 mysql 5.5.47 on debian jessie 8.3) despite having configured /etc/mysql/my.cnf following entries

[mysqld] character-set-server=utf8  [mysql] default-character-set=utf8 

the mysqlnd not seem assume server default charset (utf8) sets connection charset latin1 collate latin1_swedish (maybe default value considering mysql ab swedish company).

so, seems there's no permanent way set utf8 charset when connecting php application. have call

$mysqli->set_charset("utf8") 

after each connection. embedded in custom 'dbconnect' php function in order provide sort of abstraction layer.


Comments