精华内容
下载资源
问答
  • 彻底解决MySQL数据库乱码问题 在中文环境下,MySQL中文乱码是个常见而又棘手的问题。本文在不涉及后台程序与服务器连接数据库的情况下,通过配置相关参数,彻底解决数据库中文乱码问题。 彻底解决MySQL数据库...

    MySQL数据库中文乱码问题

    在中文环境下,MySQL中文乱码是个常见而又棘手的问题。本文在不涉及后台程序与服务器连接数据库的情况下,通过配置相关参数,彻底解决数据库中文乱码问题

    参考文献

    博客:《彻底解决mysql中文乱码》

    主要问题

    在MySQL里,中文乱码主要体现在以下两个方面

    • select结果中,若存在的中文字符串会乱码显示

    • 通过insert插入中文字符串会报错:ERROR 1366 (HY000): Incorrect string value: ‘\xC6\xF4\xD3\xC3’ for column ‘name’ at row 1

    解决办法

    本文是使用示例数据库如下所示:

    先来解决第一个问题,也是最主要的问题!

    • 第一步

    在命令行输入:show create table user;

    显示:

    这表示相关字段没有设置成默认utf8的编码,这是需要输入SQL语句将相关字段设成默认utf8编码:

    alter table user modify name varchar(20) character set utf8 collate utf8_unicode_ci not null default ' ';
    alter table user modify sex varchar(255) character set utf8 collate utf8_unicode_ci not null default ' ';
    alter table user modify home varchar(255) character set utf8 collate utf8_unicode_ci not null default ' ';
    alter table user modify info varchar(255) character set utf8 collate utf8_unicode_ci not null default ' ';
    /*具体字段请参考自己的数据表*/
    

    再次输入命令:show create table user;

    如果出现下图的结果则表示设置成功

    • 第二步

    在命令行输入:show variables like ‘%char%’;

    如果出现上图的结果,则表示客户端、服务器端、连接等均成功设置成utf8编码;如果不是上图的结果(一般会出现latin1),则需要做以下设置:

    #1.打开数据库配置文件my.init(注1)
    
    #2.在my.init文件中找到并修改成以下
    
    [mysqld]
    character-set-server=utf8
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    
    #3.重启MySQL服务(注2)
    
    

    注1:windows中my.init文件的位置
    注2:windows下重启mysql的方法

    这时,再输入命令,就可以显示如上图的结果了。

    至此,我们已经解决select结果中文乱码显示的问题了,如图:

    然而,尝试insert插入中文字符串,仍然报错:ERROR 1366 (HY000): Incorrect string value: ‘\xC6\xF4\xD3\xC3’ for column ‘name’ at row 1

    • 第三步

    这时,我们分析这个问题,暂时猜测是数据库客户端不支持在utf8字符集中插入中文字符。因此,我们尝试一下改成gbk是否可以。

    在命令行输入:set names gbk;

    此时默认字符显示如下图:

    此时再来insert,发现已经没有问题。

    navicat乱码问题

    通过以上设置,已经彻底解决中文乱码问题。但是,有些人通过navicat连接数据库后,发现仍然出现中文乱码。这是可以分析:单纯是navicat配置问题了。

    解决中文乱码,navicat通常需要以下配置:

    • 1.在连接属性中,勾选使用MySQL字符集,使其默认**65001(UTF-8)**编码

    • 2.数据库属性设置成以下选项

    设置好以上两项后,navicat中文乱码问题就解决了。

    总结

    虽然具体问题仍然没有找出来,但是棘手已久的问题总算解决了。

    此外,如果在程序中连接了数据库,还需要对程序字符集、服务器字符集等进行设置,具体请看(coming soon)!

    展开全文
  • 调试三、 新建表总结参考文献 MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。 一、Windows下安装MySQL 1.下载安装 首先给出...

    MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

    一、Windows下安装MySQL

    1.下载安装

    2.配置数据库

    WIN + R调出运行窗口,输入cmd。将目录切换到MySQL解压目录下的bin目录。如下图所示。

    在这里插入图片描述

    • 初始化数据库
      输入命令mysqld --initialize --console,并记录随机生成的密码
    • 安装 mysql 的Windows服务
      输入命令 mysqld -install
    • 启动 mysql 服务
      输入命令 net start mysql
    • 登陆数据库
      输入命令 mysql -u root -p 登陆数据库,密码为前面记录的临时密码
    • 如果需要修改密码,可以参考博客

    二、配置Visual studio

    1. 创建项目编写代码

    • 创建空项目
    • 添加源文件,这里给出一个源文件的示例
    //C++连接MySQL
    #include <Windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream>
    #include <iomanip>
    #include <mysql.h> 
    using namespace std;
    
    #pragma comment(lib,"libmysql.lib")
    #pragma comment(lib,"wsock32.lib")
    
    int main()
    {
    	MYSQL conn;
    	MYSQL_RES* result;  //存储查询等结果
    	MYSQL_ROW sql_row;	//查询返回行数
    	const char* username = "xxx";			//用户名  (or const char username[])
    	const char* passwd = "xxx";        		//密码
    	const char* host = "localhost";			//地址 or"127.0.0.1"
    	const char* database = "test";        	//数据库database   
    	unsigned int port = 3306;           	//端口号server port 
    
    	int res;
    	if (!mysql_init(&conn))
    	{//初始化一个MYSQL 连接的实例对象,失败
    		cout << "[mysql_init() error] " << mysql_error(&conn) << endl;
    		exit(EXIT_FAILURE); //EXIT_FAILURE是stdlib.h中定义的: #define EXIT_FAILURE 1;表示没有成功地执行一个程序
    	}
    
    	if (!mysql_real_connect(&conn, host, username, passwd, database, port, NULL, 0))
    	{
    		cout << "[mysql_real_connect() error] " << mysql_error(&conn) << endl;
    		exit(EXIT_FAILURE);
    	}
    	mysql_query(&conn, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文
    	//const char* sql_query = "select * from test";//database下有相应的表才能成功
    	const char* sql_query = "select * from student";//database下有相应的表才能成功
    	if (mysql_query(&conn, sql_query))
    	{
    		cout << "[mysql_query() (sql:" << sql_query << ")error]" << mysql_error(&conn) << endl;
    		exit(EXIT_FAILURE);
    	}
    
    	result = mysql_store_result(&conn);//保存查询到的数据到result
    	if (result)
    	{
    		int rows = mysql_num_rows(result);
    		int fileds = mysql_num_fields(result);//
    		cout << "The total rows is (" << sql_query << "): " << rows << endl;
    		cout << "The total fileds is : " << fileds << endl;
    
    		MYSQL_FIELD* fd;
    		fd = mysql_fetch_field(result);//获得字段名
    		for (int i = 0; i < fileds; i++)
    		{//获取列名
    			cout << std::left << std::setw(14); cout << fd[i].name;//对齐输出,setw函数是对齐用到的
    		}
    		cout << endl; //列名输出结束
    
    
    		while ((sql_row = mysql_fetch_row(result)))
    		{//获取具体的数据(每次获取一行)
    			for (int j = 0; j < fileds; j++)
    			{
    				if (sql_row[j] == NULL) {//防止内容为空,程序崩溃
    					cout << "null";
    				}
    				else {
    					cout << std::left << std::setw(14); cout << sql_row[j];
    				}
    			}
    			cout << endl;
    		}//表数据输出结束
    
    	}
    	mysql_close(&conn);//断开连接,释放一个MYSQL 连接实例
    	return 0;
    }
    
    

    直接运行,会报错:fatal error C1083: 无法打开包括文件: “mysql.h”: No such file or directory。需要对项目环境进行配置。
    在这里插入图片描述

    2.项目环境配置(Debug平台为 x64)

    (1) 复制 lib 和 dll 文件
    将MySQL Server安装目录下 lib 内的 libmysql.lib 和 libmysql.dll,复制到C:\Windows\System32下。
    (2)点击 项目→xxx属性
    在这里插入图片描述
    (3)C/C++→常规→附加包含目录:填写MySQL Server安装目录下include路径
    在这里插入图片描述
    (4)链接器→常规→附加库目录:填写MySQL Server安装目录下lib路径
    在这里插入图片描述

    (5)C/C++→预处理器→预处理器定义: _CRT_SECURE_NO_WARNINGS;
    在这里插入图片描述

    3. 调试

    注意: 调试器要与项目属性配置一致,即Debug-x64

    然而,现在直接运行还会报错:[mysql_real_connect() error] Access denied for user 'xxx'@'localhost' (using password: YES)

    在这里插入图片描述
    这是因为在源代码中,我们未将 username 和 passwd 改为自己MySQL数据库对应的用户名和密码。修改之后继续运行,原来的错误消失了。

    在这里插入图片描述

    出现了新的错误,[mysql_query() (sql:select * from test)error]Table 'test.test' doesn't exist
    这是因为我们还没有新建表 test.test 。

    三、 新建表

    在 test 数据库中新建 test 数据表,SQL 语句和运行结果如下:

    mysql> USE test;
    Database changed
    mysql> CREATE TABLE test (
        -> id INT(4),
        -> name VARCHAR(20),
        -> sex CHAR(1));
    Query OK, 0 rows affected, 1 warning (3.82 sec)
    

    使用 DESC 查看 student 表结构,SQL 语句和运行结果如下:

    mysql> DESC test;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int         | YES  |     | NULL    |       |
    | name  | varchar(20) | YES  |     | NULL    |       |
    | sex   | char(1)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set (0.38 sec)
    

    在MySQL中输入 show databases;查看数据库,SQL 语句和运行结果如下:

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+
    5 rows in set (0.14 sec)
    

    可以看出存在 test 数据库,数据库配置无误。
    在MySQL中输入 show tables;查看表,SQL 语句和运行结果如下:

    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | student        |
    | test           |
    +----------------+
    2 rows in set (0.12 sec)
    

    由此可以看出已经建立了test表。再次运行程序,输出正确:
    在这里插入图片描述

    总结

    本文首先介绍了MySQL数据库的下载安装,之后对 Visual studio 2017 的项目环境进行配置,最后给出了一个连接MySQL数据库的简单 C++ demo 代码。

    参考文献

    1. https://blog.csdn.net/ychgyyn/article/details/84404217
    2. https://blog.csdn.net/weixin_36466834/article/details/111604663?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
    3. https://www.php.cn/mysql-tutorials-460359.html
    4. https://blog.csdn.net/Along_168163/article/details/99057831
    展开全文
  • 第19章Java访问MySQL数据库略。参考文献: 1.《MySQL入门很简单》。

    第20章 PHP访问MySQL数据库

    略。

    参考文献:
    1.《MySQL入门很简单》。

    展开全文
  • 第19章 Java访问MySQL数据库略。参考文献: 1.《MySQL入门很简单》。

    第19章 Java访问MySQL数据库

    略。

    参考文献:
    1.《MySQL入门很简单》。

    展开全文
  • 第21章 C#访问MySQL数据库略。参考文献: 1.《MySQL入门很简单》。
  • 今天因为需要做了一个爬取知网博硕士论文及中国专利的爬虫,在制作的过程中遇到了不少坑,在网上查资料时都是很老的资源,在现在知网的反爬虫下不起作用,所以我来写这篇文章来供大家参考。(这篇文章主要介绍通过...
  • 参考文献 https://www.cnblogs.com/lnlvinso/p/4596531.html 大致思路 先强制启动,将数据备份出来,然后找到坏表删掉或重装数据库,将数据恢复回去。 启动报错 运行 service mysql start 启动命令报错,查看了...
  • MySQL数据库临时提高性能的方法短连接风暴慢查询问题参考文献 短连接风暴   连接数量超过max_connections时,新来的连接会被拒绝。这时有一些临时解决办法(注意这些办法都是有损的) kill掉那些占用连接但未进行...
  • 上一篇Django 2.1.7 MVT模型示例 - 查询数据,返回...参考文献 官方文档 在mysql数据库创建数据库实例 Django在配置连接mysql之前,第一个就是需要在mysql中创建好数据库实例,表的话可以使用迁移的手段创建。 那么...
  • 文章目录用户管理创建用户用户重命名删除用户修改密码MySQL 5.7.24 忘记root密码,重置密码的方法用户授权权限的分类授权取消授权查看指定用户获得的授权参考文献 用户管理 跟用户相关的数据库及表 元数据数据库:...
  • mysql数据库的备份与恢复 参考文献 参考1:http://blog.csdn.net/feng_sundy/article/details/3496744 参考2:http://www.cnblogs.com/lxJack/archive/2011/05/22/2053270.html 参考3:...
  • MySQL有瑞典的T.c.X公司负责开发和维护,MySQL的用户手册很单纯,只有一个集中的<MySQL Reference Manual>,但其内容覆盖了MySQL的所有信息,因此该手册是了解和掌握MySQL的绝佳文献。 虽然对MySQL的开发不能出一份...
  • 参考文献: https://www.cnblogs.com/kissdodog/p/4174421.html package org.tonny.mysql;   import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io....
  • 文章目录总结参考文献 最近在搞oracle数据库,搭了个项目,springboot+mybatis+oracle。发现插入数据时,感觉像陷入死循环了一样,不报错,表中却没有数据。想了半天,会不会是因为没有添加事务的原因造成的,然后...
  • mysql数据库】读写分离的常见方案

    千次阅读 2019-03-08 21:45:56
    【学习背景】 近期陆续接触到数据...主要参考文献:https://www.cnblogs.com/fyc119/p/7529902.htmlhttps://yq.aliyun.com/articles/241744 【读写分离的目的】 通过数据库中间件,可以对数据库进行水平扩展,由...
  • 1.导入MySql数据库 参考文献:http://zhuaxia.org/blog/post/145 1.1.LOAD DATA INFILE语法 因为获得的数据库文件是一个文本文件www.csdn.net.sql,因此需要用到mysql中的LOAD DATA INFILE命令,LOAD DATA INFILE的...
  • 主要参考文献: http://blog.csdn.net/xiaozhegaa/article/details/53741623 这里已经写的很详细了。 首先需要确认你的PHP服务器是否已经安装有连接数据库的插件, 检查文件是否存在。如果没有就去下载驱动
  • 参考文献   mysql增加列,修改列名、列属性,删除列 已测试,是正确的 mysql alter 语句用法,添加、修改、删除字段等 比上一个更详细 create database if not exists Album create...
  • 1.导入MySql数据库 参考文献:http://zhuaxia.org/blog/post/145 1.1.LOAD DATA INFILE语法 因为获得的数据库文件是一个文本文件www.csdn.net.sql,因此需要用到mysql中的LOAD DATA INFILE命令,LOAD DATA INFILE...
  • 3.连接Mysql数据库 4.参考文献与资料  说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩。总归是和其他数据库不一样,标新立异...
  • 参考文献 1、Navicat Premium 基本使用; 2、nodejs 连接数据库; 1、Navicat Premium 使用: 2、创建查询,输入 show databeses ;,点击运行;然后创建连接,创建表; ...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 338
精华内容 135
关键字:

mysql数据库参考文献

mysql 订阅