mysql as 乱码_mysql乱码解决

1、查询数据库编码

show variables like "%char%";

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 --mysql客户端编码|

| character_set_server |utf8|

| character_set_system |utf8|

| character_sets_dir | D:\Java\Databases\MySQL\MySQL Server 5.0\share\charsets\|

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

2、客户端乱码解决

因为操作系统是中文操作系统,默认使用的字符集是GB2312,所以需要修改一下:

set character_set_results=gb2312;注意作用是临时的3、查看某个数据库编码

mysql> show create databasebase;+----------+-------------------------------------------------------------------+

| Database | Create Database |

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

| base | CREATE DATABASE `base` /*!40100 DEFAULT CHARACTER SET utf8*/ |

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

4、查看表的数据库编码

mysql> show create tablebase_auth_group;+-----------------+---------------------------------------------------------------------------------------------------------------

| Table | Create Table

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

| base_auth_group | CREATE TABLE`base_auth_group` (

`dbid`bigint(20) NOT NULL auto_increment COMMENT '物理主键',

`id`char(36) NOT NULL COMMENT '业务主键',

`name`varchar(32) NOT NULL COMMENT '分组名',

`groupname`varchar(64) NOT NULL COMMENT '分组名称',

`type`int(11) NOT NULL COMMENT '类型',

`create_time`datetime default NULL COMMENT '创建时间',

`modify_time`datetime default NULL COMMENT '修改时间',PRIMARY KEY(`dbid`),UNIQUE KEY`id` (`id`),UNIQUE KEY`groupname` (`groupname`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户组表'

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

5、程序调用编码乱码

错误:(Incorrect string value: '\xE8\xB6\x85\xE7\xBA\xA7...' for column 'name')

注意查看:信息输入路径:client→connection→server的编码;

使用:SET NAMES UTF8;

等价于:

SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = utf8;

若以上编码统一后还是乱码,就需要查看创建表的编码;

6、执行sql脚本时乱码

也是需要先进行SET NAMES UTF8;编码统一

use test; 进入数据库

source test.sql;执行sql

注意:

创建数据库时,最好指定编码:CREATE DATABASE base DEFAULT CHARACTER SET utf8;

只要数据库创建制定好编码,其内新创建的编码都会与当前数据库编码一致;

7、最常用两个命令

use databaseName;选择数据库

show tables;查看数据库中所有表

8、DATETIME,DATE和TIMESTAMP

DATETIME类型是:年-月-日 时:分:秒

DATE类型是:年-月-日

TIMESTAMP是:可以默认为NULL,显示格式与DATETIME一样

虽然datetime与timestamp格式一样但是还是不同

datetime插入当前日期使用new();

timestamp插入当前日期使用 CURRENT_TIMESTAMP

若含有多个timestamp类型字段时,只能在第一个出先的字段使用“DEFAULT CURRENT_TIMESTAMP” ,只能用一次并且是第一个字段

9、创建表

drop table if existsbase_auth_user_group;create tablebase_auth_user_group(

dbidbigint(20) not null auto_increment primary key comment '物理主键',user_id char(36) not null comment '用户表id',

group_idchar(36) not null comment '分组表id',constraint unique (user_id, group_id)

) comment'用户和组映射表';

10、创建视图

CREATE OR REPLACE VIEW BASE_AUTH_PERM_USER AS

SELECT

DISTINCT USER_ID, PERMISSION_IDFROMBASE_AUTH_USER_GROUP UGJOIN BASE_AUTH_PERM_GROUP PG ON UG.GROUP_ID =PG.GROUP_ID

;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值