How to change system variables of sql on server - mysql

I need to find file where I can change these variables into utf-8. I can't find them in my.cnf files.
collation_connection latin1_swedish_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_results latin1
character_set_server latin1

From mysql doc You can change character_set configuration
[client]
character-sets-dir=/usr/local/mysql/share/mysql/charsets
[client]
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.6/share/charsets"
http://dev.mysql.com/doc/refman/5.6/en/charset-configuration.html

Related

MySQL 5.7 Not setting as utf8mb4 correctly

I'm trying to import data into my table. The source is CSV in UTF8 encoding into my MySQL UTF8MB4 table.
Originally i thought the encoding was wrong for the language which is Russian (for this failed row) but it turns out its a slash "/" in the string (or any other similar chars) and when i remove it then insert works to that point.
This data is multi language and has emoji too, what is the best way to handle the slash in the double quote enclosed string?
For example the slash in this is the problem "й\с"
When i run
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'
I get
Variable_name
Value
character_set_client
utf8mb4
character_set_connection
utf8mb4
character_set_database
utf8mb4
character_set_filesystem
binary
character_set_results
utf8mb4
character_set_server
latin1
character_set_system
utf8
collation_connection
utf8mb4_general_ci
collation_database
utf8mb4_unicode_ci
collation_server
latin1_swedish_ci

MySQL only storing some Emojis in text field when using UTF8MB4

We have a project where we're storing Facebook and Twitter posts in a Mysql database, as first almost all Emojis were being stored as ?. We've since gone ahead and made some configuration changes to the database server, and since then we're starting to see more Emojis saving and appearing correctly, however some Emojis are still showing as ?, sadly I'm not sure which ones they are. I know one of them was a basket ball.
When I execute the following commend on MySQL;
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%'
OR Variable_name LIKE 'collation%';
I see the following settings;
character_set_client = utf8
character_set_connection = utf8
character_set_database = utf8mb4
character_set_filesystem = binary
character_set_results = utf8
character_set_server = utf8mb4
character_set_system = utf8
collation_connection = utf8_general_ci
collation_database = utf8mb4_unicode_ci
collation_server = utf8mb4_unicode_ci
Our database server is hosted with Rackspace, we've asked them to set up the following configuration;
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
I've tested output from the database using a number of clients, PHP, Java and MySQL Workbench.
I'm at a loss now as to why some Emojis are not saving, and I've followed as much advice as I can find on the web.
character_set_client/connection/results = utf8 -- These three are changed by SET NAMES. What you list seems to be before SET NAMES is executed.
If you are connecting as root, init-connect is not executed; perhaps this is why you don't see it.
Establish a non-SUPER user for all application work; that way the init-connect will be executed.

How to set utf8mb4 on MySQL 5.7 (windows)

I have an installation of MySQL 5.7 on a Windows 7 machine.
I need to change the character set of the database in order to persist emoji.
The configuration into my.ini:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
default-character-set = utf8mb4
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Into the windows services I saw that the configuration file path that is loaded is correct.
Looking into database properties with the query:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
I got the following results:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
collation_connection utf8_general_ci
collation_database utf8mb4_general_ci
collation_server utf8_general_ci
So, the values of collation_server, character_set_system, character_set_server, character_set_results, character_set_connection, character_set_client are wrong.
How can I fix them?
Thanks.
After connecting to MySQL, perform SET NAMES utf8mb4. That will establish that your client is using the full 4-byte encoding for reading/writing.
You can do this in my.cnf/my.ini:
init_connect = 'SET NAMES utf8mb4'
but keep in mind that when connecting as root (or any SUPER user), init_connect is ignored.
Also, the tables/columns must be CHARACTER SET utf8mb4.

change vbulletin mysql character encoding to latin1 on centos

i have a problem...
we moved site from server to server...
and after that our site ascii code not working true...
if i add an ascii code to editor on vbulletin there is problem after saving post...
i saw on database..
&#9604 ; must be save but saving „â–
there is a problem but how can i solve this problem..
i looked show variables ...
character_set_client utf8
character_set_connection latin1
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/
collation_connection latin1_swedish_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
but i looked on vbulletin sql query
all of them latin1...only character_set_system utf8 but i cant latin1 all of them..
how can i fix it...
please help me ...
i looked 3 months ...
sorry my bad english.

character_set_filesystem not present in show variables

I'm a little worried about the absence of this variable when I execute the show variables command. This is what I get when I execute show variables like 'char%':
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
I wonder why this is happening. What does it mean? can I just add it to the my.cnf file?
Thank you...
Edit: Sorry, I recently noted that I didn't specify which variable we're talking about (though I said it in the title). The variable is character_set_filesystem. Thanks.
http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_character-set-filesystem
Version Introduced 5.1.6
So most likely you have mysql < 5.1.6