mysql mariadb 乱码

mysql

 

创建临时表 CREATE TEMPORARY TABLE tmp_table SELECT COUNT(*) AS num FROM student_info GROUP BY LEFT(name,1);

 

一、查看MySQL数据库服务器和数据库MySQL字符集。

 

show variables like '%char%';

 

 Linux下一般是 /etc/my.cnf,Windows下一般在系统目录下或者在MySQL的安装目录下名字叫my.ini

注意:新版本的mariadb,如mariadb-10.1的配置些许有些变化
 
在my.ini文件末尾添加如下
[mysqld]

init_connect = 'SET collation_connection = utf8_general_ci'

init_connect = 'SET NAMES utf8'

character_set_server = utf8

collation_server = utf8_general_ci

[mysqld_safe]

init_connect = 'SET collation_connection = utf8_general_ci'

init_connect = 'SET NAMES utf8'

character_set_server = utf8

collation_server = utf8_general_ci

 

 

二、修改mysql默认字符集的方法,就是使用mysql的命令

 

   mysql> SET character_set_client = utf8 ;

   mysql> SET character_set_connection = utf8 ;

   mysql> SET character_set_database = utf8 ;

   mysql> SET character_set_results = utf8 ;

   mysql> SET character_set_server = utf8 ;

   mysql> SET collation_connection = utf8 ;

   mysql> SET collation_database = utf8 ;

   mysql> SET collation_server = utf8 ;

 

 

 

三、

 

   sudo /etc/init.d/mysql stop

 

   sudo /etc/init.d/mysql start

   

   

   一、查看MySQL数据库服务器和数据库MySQL字符集。

 

   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       | D:\MySQL Server 5.0\share\charsets\ |......  

   +--------------------------+-------------------------------------+------

 

二、查看MySQL数据表(table)的MySQL字符集。

 

   mysql> show table status from sqlstudy_db like '%countries%';  

   +-----------+--------+---------+------------+------+-----------------+------  

   | Name      | Engine | Version | Row_format | Rows | Collation       |......  

   +-----------+--------+---------+------------+------+-----------------+------  

   | countries | InnoDB |      10 | Compact    |   11 | utf8_general_ci |......  

   +-----------+--------+---------+------------+------+-----------------+------

 

三、查看MySQL数据列(column)的MySQL字符集。

 

   mysql> show full columns from countries;  

   +----------------------+-------------+-----------------+--------  

   | Field                | Type        | Collation       | .......  

   +----------------------+-------------+-----------------+--------  

   | countries_id         | int(11)     | NULL            | .......  

   | countries_name       | varchar(64) | utf8_general_ci | .......  

   | countries_iso_code_2 | char(2)     | utf8_general_ci | .......  

   | countries_iso_code_3 | char(3)     | utf8_general_ci | .......  

   | address_format_id    | int(11)     | NULL            | .......  

   +----------------------+-------------+-----------------+--------  

   

   

   

   mysql默认字符集能否进行修改呢?答案是肯定的,下面就将教您两种修改mysql默认字符集的方法,希望对您学习mysql默认字符集方面能有所启迪。

 

(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,

 

如 default-character-set = utf8

character_set_server = utf8

 

修改完后,重启mysql的服务,service mysql restart

 

使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8

 

   +--------------------------+---------------------------------+  

   | 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 | D:"mysql-5.0.37"share"charsets" |  

   +--------------------------+---------------------------------+  

 

(2) 还有一种修改mysql默认字符集的方法,就是使用mysql的命令

 

   mysql> SET character_set_client = utf8 ;  

   mysql> SET character_set_connection = utf8 ;  

   mysql> SET character_set_database = utf8 ;  

   mysql> SET character_set_results = utf8 ;    

   mysql> SET character_set_server = utf8 ;  

   

   mysql> SET collation_connection = utf8 ;  

   mysql> SET collation_database = utf8 ;  

   mysql> SET collation_server = utf8 ;

 

一般就算设置了表的mysql默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

 

   SET NAMES 'utf8';  

 

它相当于下面的三句指令:

 

   SET character_set_client = utf8;  

   SET character_set_results = utf8;  

   SET character_set_connection = utf8;

   

   

   

   ubuntu上安装mysql非常简单只需要几条命令就可以完成。

  1. sudo apt-get install mysql-server

 

  2. apt-get isntall mysql-client

 

  3.  sudo apt-get install libmysqlclient-dev

 

  安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:

 

  sudo netstat -tap | grep mysql

 

  通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

 

  登陆mysql数据库可以通过如下命令:

 

  mysql -u root -p

 

  -u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

posted @ 2016-10-25 15:43  次序  阅读(650)  评论(0编辑  收藏  举报