Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

问题:

  在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values(‘汉字‘);

  会出现如下提示:  Query OK, 1 row affected, 1 warning (0.00 sec)    表明出现错误,没有插入成功,然后执行select * from 表名   就会出现如下的问题:显示的表中出现乱码或者问号。

  如图:

解决方案:

  首先重新打开一个终端窗口(方便操作),进入root用户模式

  执行 vim/vi   /etc/mysql/my.cnf (此路径根据个人的安装情况,一般默认是这个路径)

  在my.cnf 文件中在对应位置修改(添加)如下内容:  

  [client]
  default-character-set=utf8

  [mysqld]
  character-set-server=utf8
  init_connect=‘set names utf8‘

  注意:此处不要添加  default-character-set=utf8 ,否则在重启数据库的时候会出现failed to start错误!!!!!

  [mysql]
  default-character-set=utf8

  以上内容修改完毕,保存退出。

  执行service mysql restart 重启mysql数据库

  执行mysql -u root -p(此处重新登录是为了避免出现由于没有修改文档出现之前的乱码的问题)重新进入数据库

  执行show variables like ‘character_set_%‘;就会出现如下图所示内容:

  

  然后执行insert into 库名(属性)values(‘汉字‘)重新插入中文数据,此时就会正确显示中文了!!!如下图所示:

  

  备注:此文章在参考他人的许多文章总结之后的结果!!!希望给大家提供帮助!

  

时间: 2024-08-02 02:50:15

Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!的相关文章

Linux环境下MySQL数据库大小写区分问题

1.Linux下MySQL安装完后是默认:区分表名的大小写,不区分列名的大小写:2.用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写:lower_case_table_names参数详解:lower_case_table_names = 0其中 0:区分大小写,1:不区分大小写MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的:1.数据库名与表名

Linux环境下MySQL数据库用C/C++语言插入中文数据元组显示乱码问题

解决方案: 只需要在C/C++程序中的执行操作语句(查询操作等)之前加上下面一句即可: mysql_query(&mysql,"set names utf8"); 此处的utf8必须要和在数据库中执行SQL语句:show variables like 'character_set_%'状态表中的编码一致!我的编码如下所示: 只需要一致即可,此处需要注意的是utf8兼容性更好!!!推荐使用utf8编码!!! 备注:此文希望给大家提供帮助!都是经过我的实践总结!!!

Linux环境下mysql数据库导入导出方法

导出整个数据库中的所有数据 1.在linux命令行下输入: mysqldump -u userName -p  dabaseName  > fileName.sql fileName.sql最好加上路径名 导出数据库中的某个表的数据 mysqldump -u userName -p  dabaseName tableName > fileName.sql 导出整个数据库中的所有的表结构 在linux命令行下输入: mysqldump -u userName -p -d dabaseName  

Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法

修改了lower_case_table_names=1 后,业务发有个库的表打不开了,看了表名以前是大写,查了一下如果设置不区分大小写, 以前的大小表名要改成小写.重启服务后可用! MYSQL在LINUX下数据库名.表名.列名.别名大小写规则如下: 1.数据库名与表名是严格区分大小写的 2.表的别名是严格区分大小写的 3.列名与列的别名在所有的情况下均是忽略大小写的 4.变量名也是严格区分大小写的 Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法

解决Linux系统下Mysql数据库中文显示成问号的问题

当我们将开发好的javaWEB项目部署到linux系统上,操作数据库的时候,会出现中文乱码问题,比如做插入操作,发现添加到数据库的数据中文出现论码,下面就将解决linux下mysql中文乱码问题! 打开Linux窗口,启动mysql. 连接mysql输入show variables like '%char%'; 出现如下图,这样的话在linux下操作mysql会出现中文乱码,所以我们要解决这个问题. 关闭mysql,找到 /etc/my.cnf 文件 3.1 如果没有找到my.cnf文件,就从

SQL Server插入中文数据后出现乱码

原文:SQL Server插入中文数据后出现乱码 今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type](  [TypeId] INT NOT NULL PRIMARY KEY,     [TypeName] NVARCHAR(50)NOT NULL,     [Description] NVARCHAR(255) NULL,     [CategoryId] INT NOT NU

MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于excel),用来存放多行内容/多条记录 5. 记录:事物一系列典型的特征 6. 数据:描述事物特征的符号 MySQL数据库就是一个套接字软件,用来管理其他机器上的数据文件 MySQL介绍: MySQL是一个关系型数据库管理系统:就是一个基于socket编写的C/S架构胡软件 客户端软件 mysql

linux centos下mysql数据库的主从复制环境搭建

有两台MySQL数据库服务器Master和slave,Master为主服务器,slave为从服务器,初始状态时,Master和slave中的数据信息相同,当Master中的数据发生变化时,slave也跟着发生相应的变化,使得master和slave的数据信息同步,达到备份的目的. 原理图如下: 简单来说,mysql的主从复制的原理就是slave把master上面执行的 update,insert这些会使数据发生改变的sql语句从master上面同步过来,然后在自己的机器上再执行一遍,那么这两台数

Linux环境下MySQL基础命令(4)----数据库的用户授权

      MySQL数据库的root用户拥有对所有库,表的全部权限,频繁的使用root用户会给数据库带来很大的风险,因此应建立一些低权限用户,只负责一部分库.表的管理维护操作,甚至可以对增.删.改.查各个操作进一步细化限制,从而将数据库的风险降至最低. 一,授予权限 GRANT语句:用来设置数据库用户的访问权限,当指定的用户不存在时,GRANT语句将会创建新的用户.使用GRANT语句授权的用户记录,会保存到mysql库的user.db.host.tables_priv等表中,无需刷新便立即生效