iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql中怎么导入source数据库
  • 548
分享到

mysql中怎么导入source数据库

2024-04-02 19:04:59 548人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关Mysql中怎么导入source数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。想有一个不需要安装mysql客户端就可以导入数据库脚

这期内容当中小编将会给大家带来有关Mysql中怎么导入source数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

想有一个不需要安装mysql客户端就可以导入数据库脚本,但找不到对应的api调用。所以得需要自己去实现导入数据库的实现方法:

common.h

#ifndef _COMMON_H
#define _COMMON_H
#ifdef WIN32

	#include <winsock2.h>

	typedef __int8					int8_t;
	typedef __int16					int16_t;
	typedef __int32					int32_t;
	typedef __int64					int64_t;

	typedef unsigned __int8			uint8_t;
	typedef unsigned __int16		uint16_t;
	typedef unsigned __int32		uint32_t;
	typedef unsigned __int64		uint64_t;

#define atoll(_String) \
	_atoi64(_String)
#else
	#include <sys/types.h>
	#include <sys/Socket.h>
	#include <stdint.h>
	#include<linux/string.h>
#endif
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <list>
using namespace std;
enum SERVER_ACTION{
	SERVER_STARTNEW = 0,//开新服
};
#ifdef WIN32
#define  PATH_DELIMTER "\\"
#else
#define  PATH_DELIMTER "/"
#endif
#endif

dbmanager.h

#ifndef _DBMANAGER_H
#define _DBMANAGER_H
#include <string>
using namespace std;
#include "common.h"
#include <mysql.h>
//数据库配置信息
struct DBInfo
{
	string host;
	string user;
	string passwd;
	string db;
	uint16_t port;
};
class DBManager
{
public:
	DBManager();
	~DBManager();

	bool SelectDB(string dbName);
	bool ConnectDB(DBInfo &dbInfo);
	MYSQL_RES* ExeSql(const char * sql, int len);
	bool readFromSql(string fileName,vector<string>& sql);
	bool sourceSql(string fileName);
private:
	MYSQL *mysqlInit(DBInfo &info);
	void mysqlClose();
private:
	MYSQL *m_mysqlConn;
	DBInfo m_dbConfig;
};


extern DBManager g_DBManager;#endif

dbmanager.cpp

#include "dbmanager.h"
#include <fstream>
DBManager g_DBManager;
DBManager::DBManager()
{
}
DBManager::~DBManager()
{
}
bool DBManager::ConnectDB(DBInfo &dbInfo)
{
	m_dbConfig = dbInfo; 
	m_mysqlConn = mysqlInit(dbInfo);
	if (!m_mysqlConn) 
	{
		return false;
	}
	return true;
}

MYSQL *DBManager::mysqlInit(DBInfo &info)
{
	MYSQL *mysql = mysql_init(NULL);
	if (!mysql)  
		return NULL;
	
	if (!mysql_real_connect(mysql,
								info.host.c_str(),
								info.user.c_str(),
								info.passwd.c_str(),
								info.db.c_str(),
								info.port, NULL, 0)) 
	{
		int ret = mysql_errno(mysql); 
		
		mysql_close(mysql);
		return NULL;
	}
	
#if MYSQL_VERSION_ID >= 50013
	my_bool reconnect = 1;
	if (mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect))
	{
		int ret = mysql_errno(mysql); 
		 
		mysql_close(mysql);
		return NULL;
	}
#else
	mysql->reconnect = 1;
#endif

	
	return mysql;
} 

void DBManager::mysqlClose()
{
	if (m_mysqlConn)
	{
		mysql_close(m_mysqlConn);
		m_mysqlConn = NULL;
	}
} 



MYSQL_RES* DBManager::ExeSql(const char * sql, int len)
{
	MYSQL_RES* res = NULL;
	int ret = mysql_real_query(m_mysqlConn, sql, len);
	if (ret == 0)
	{
		res = mysql_store_result(m_mysqlConn);
	}else{
		printf("mysql query %s return errorcode:%d\n",sql, mysql_errno(m_mysqlConn));
	}
	return res;
}



bool DBManager::SelectDB(string dbName)  
{  
	if(mysql_select_db(m_mysqlConn,dbName.c_str()))  
		return false;  
	else  
		return true;  
}



bool DBManager::readFromSql(string fileName,vector<string>& sql){
	ifstream in(fileName.c_str(), iOS::in);//linux
	string signalSql,s;  
	if(!in){
		return false;
	}  
	while(getline(in,s)){
		int pos = s.find(";");
		signalSql += s;
		if(pos != s.npos){//找到了一条语句的结束位
			sql.push_back(signalSql);
			signalSql.clear();
		}
		s.clear();
	}
	in.close();
	return true;
}



bool DBManager::sourceSql(string fileName){
	vector<string> vecSql;
	bool ret = readFromSql(fileName,vecSql);
	if(ret == false){
		printf("导入gamedb.sql失败");
		return false;
	}
	for (vector<string>::iterator it = vecSql.begin(); it != vecSql.end(); it++)
	{
		ExeSql((*it).c_str(), (*it).length());
	}
	return true;
}

上述就是小编为大家分享的mysql中怎么导入source数据库了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql中怎么导入source数据库

本文链接: https://www.lsjlt.com/news/57865.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中怎么导入source数据库
    这期内容当中小编将会给大家带来有关mysql中怎么导入source数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。想有一个不需要安装mysql客户端就可以导入数据库脚...
    99+
    2024-04-02
  • mysql怎么导入数据库
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-16
  • mysql数据库怎么导入导出
    这篇文章将为大家详细讲解有关mysql数据库怎么导入导出,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.数据库导入mysql -uroot -p123456 --defau...
    99+
    2023-06-28
  • 怎么在Linux中导入导出mysql数据库
    这篇文章给大家介绍怎么在Linux中导入导出mysql数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是...
    99+
    2024-04-02
  • mysql中怎么导入数据库文件
    mysql中怎么导入数据库文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.停止mysql服务(管理工具——服务,或者DOS命令net s...
    99+
    2024-04-02
  • idea怎么导入mysql数据库
    要将idea项目导入到mysql数据库中,可以按照以下步骤进行操作: 1、确保项目中已经引入了mysql数据库的驱动程序,可以通过在...
    99+
    2024-04-09
    mysql idea
  • csv怎么导入mysql数据库
    本篇文章为大家展示了csv怎么导入mysql数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。csv怎么导入mysql数据库1.使用navicat导入数据,进入n...
    99+
    2024-04-02
  • MySQL数据库中怎么快速导出导入大量数据
    这篇文章将为大家详细讲解有关MySQL数据库中怎么快速导出导入大量数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL迁移通常使用的有三种方法:1、...
    99+
    2024-04-02
  • ubuntu上怎么导入mysql数据库
    ubuntu中导入mysql数据库的方法首先,在命令行中,启动mysql服务;sudo service mysql startmysql服务启动后,使用命令进行mysql;mysql -u root -p在数据库中新建一个需要导入的数据库名...
    99+
    2024-04-02
  • MySQL source导入很慢怎么解决
    这篇文章主要介绍“MySQL source导入很慢怎么解决”,在日常操作中,相信很多人在MySQL source导入很慢怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL&n...
    99+
    2023-06-29
  • mysql中怎么利用Navicat导出和导入数据库
    这期内容当中小编将会给大家带来有关mysql中怎么利用Navicat导出和导入数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  导出数据库:  打开Navicat ...
    99+
    2024-04-02
  • mysql中怎么导数据库
    这篇文章给大家介绍mysql中怎么导数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.导入到数据库创建一个空数据库后进入mysql安装目录 bin下(1)导入命令 mysql -...
    99+
    2024-04-02
  • 数据库怎么导入导出数据
    本篇内容主要讲解“数据库怎么导入导出数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库怎么导入导出数据”吧!语法:create or replace di...
    99+
    2024-04-02
  • Navicat中怎么将Oracle数据库导入到MySQL
    本篇文章给大家分享的是有关Navicat中怎么将Oracle数据库导入到MySQL,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一.下载和激活...
    99+
    2024-04-02
  • MySQL数据库导出和导入
    1).MySQLimport的语法介绍:   MySQLimport位于MySQL/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可...
    99+
    2024-04-02
  • 怎么将文件导入mysql数据库
    要将文件导入到MySQL数据库中,可以使用以下几种方法: 使用MySQL命令行工具: 可以使用MySQL的命令行工具来将文件导入到...
    99+
    2024-04-09
    mysql
  • mysql数据怎么导入hive中
    在将MySQL数据导入到Hive中之前,需要确保你已经安装了MySQL和Hive,并且配置了正确的连接信息。以下是将MySQL数据导...
    99+
    2024-05-06
    hive mysql
  • mysql中怎么导入Access 数据
    今天就跟大家聊聊有关mysql中怎么导入Access 数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。LOCK TABLES `tablename...
    99+
    2024-04-02
  • mysql数据怎么导入postgresql中
    以下是将MySQL数据导入到PostgreSQL中的一般步骤: 导出MySQL数据: 使用mysqldump或其他工具将MySQ...
    99+
    2024-04-17
    postgresql mysql
  • mysql导入数据库怎么覆盖原来的数据库
    要覆盖原来的数据库,可以使用--replace选项来导入新的数据库文件。具体步骤如下: 首先备份原数据库,以防止数据丢失。 ...
    99+
    2024-04-09
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作