centos7中mysql不能輸入中文問題的解決


首先在數據庫里面輸入

mysql> show variables like'%char%'
    -> ;
+--------------------------------------+----------------------------+
| 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                 | latin1                     |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+
9 rows in set (0.00 sec)

mysql> set character_set_database=utf8;                   #更改編碼屬性
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_client=gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_connection=gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like'%char%'
    -> ;
+--------------------------------------+----------------------------+
| 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/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+
9 rows in set (0.00 sec)

mysql> use test1
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> showtables
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'showtables' at line 1
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| address         |
| authors         |
| book_m2m_author |
| books           |
| customer        |
| student         |
| study_record    |
+-----------------+
7 rows in set (0.00 sec)

mysql> insert into books (name) value('我');
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';' at line 1
mysql> insert into books (name) value('我');
ERROR 1366 (HY000): Incorrect string value: '\xE6\x88\x91' for column 'name' at row 1
mysql> alter table books convert to character set utf8;           #將數據表的編碼方式改成utf8
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into books (name) value('我');
Query OK, 1 row affected (0.01 sec)

mysql> select * from books;
+----+------+----------+
| id | name | pub_date |
+----+------+----------+
|  1 | bbu1 | NULL     |
|  2 | bbu2 | NULL     |
|  3 | bbu3 | NULL     |
|  4 | 我   | NULL     |
+----+------+----------+
4 rows in set (0.00 sec)

mysql> select * from books;
+----+--------------+----------+
| id | name         | pub_date |
+----+--------------+----------+
|  1 | bbu1         | NULL     |
|  2 | bbu2         | NULL     |
|  3 | bbu3         | NULL     |
|  4 | 我           | NULL     |
|  5 | 我的世界     | NULL     |
+----+--------------+----------+
5 rows in set (0.00 sec)

mysql> 

 

設置MYSQL數據庫編碼為UTF-8

 

1、  編輯MySql的配置文件

MySql的配置文件Windows下一般在系統目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf

 

--在 [mysqld] 標簽下加上以下內容:

default-character-set = utf8

character_set_server = utf8

注意:如果此標簽下已經存在“default-character-set=GBK”類似的內容,只需修改即可。

--在 [mysql]  標簽下加上一行

default-character-set = utf8

 

--在 [mysql.server]標簽下加上一行

default-character-set = utf8

 

--在 [mysqld_safe]標簽下加上一行

default-character-set = utf8

 

--在 [client]標簽下加上一行

default-character-set = utf8

 

2、  重新啟動MySql服務

Windows可在服務管理器中操作,也可使用命令行:

net stop mysql 回車

net start mysql 回車

服務名可能不一定為mysql,請按自己的設置

 

Linux下面可是用 service mysql restart

 

如果出現啟動失敗,請檢查配置文件有沒有設置錯誤

 

3、  查看設置結果
登錄MySql命令行客戶端:打開命令行

mysql –uroot –p 回車

輸入密碼

進入mysql后 執行 :show variables like "% character %";
顯示結果應該類似如下:

 

| 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/ |

 

如果仍有編碼不是utf8的,請檢查配置文件,也可使用mysql命令設置:

set character_set_client = utf8;

set character_set_server = utf8;

set character_set_connection = utf8;

set character_set_database = utf8;

set character_set_results = utf8;

set collation_connection = utf8_general_ci;

set collation_database = utf8_general_ci;

set collation_server = utf8_general_ci;

 

 

 

另外:

 

建立數據庫時可以使用以下命令:

create database app_relation character set utf8; 

use app_relation;

source app_relation.sql;

修改數據庫編碼的命令為:

alter database app_relation character set utf8;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM