欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

程序员文章站 2024-01-31 22:09:23
...

数据分析系统DIY中要完成的三个任务。 一、用VMware装64位CentOS,数据库服务端用CentOS自带的就好。 二、数据采集与预处理用Dev-C++编程解决。 三、用本地Win7 64上的MATLAB R2012b连接数据库进行挖掘分析。 本文是完成第二个任务的过程。 1.Terminal中输入

数据分析系统DIY中要完成的三个任务。

一、用VMware装64位CentOS,数据库服务端用CentOS自带的就好。

二、数据采集与预处理用Dev-C++编程解决。

三、用本地Win7 64上的MATLAB R2012b连接数据库进行挖掘分析。

本文是完成第二个任务的过程。

1.Terminal中输入命令行“ifconfig”确认CentOS虚拟机ip:192.168.124.128

2.输入命令行“netstat -anp|grep mysqld”确认mariadb服务监听端口:3306

3.Win7本地安装使用HeidiSQL测试能否连接(HediSQL是windows版mariadb自带的图形界面管理软件,安装mariadb时可以选择安装)

打开HeidiSQL后会话设置如图

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

点击“打开”后报连接失败

4.推测原因可能是mariadb远程访问权限未开

Terminal登录mariadb”mysql -u root -p“,输入密码登录

mariadb提示符后输入赋权语句”GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '登录密码' WITH GRANT OPTION;“

随后刷新”flush privileges;“

回到win7中的HeidiSQL上继续测试,依然失败。

5.推测原因可能是centos7自带的防火墙

命令行”startx“进入GUI后设置Applications-Sundry-Firewall

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

在配置页面默认的zone-public选择Ports页,单击Add按钮,输入mariadb端口3306后确认。效果如图。

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

6.回到win7中的HeidiSQL上测试,连接成功!

7.但是重启centos后却发现HeideSQL又连不上服务器了。

进入Applications-Sundry-Firewall-Ports检查设置,发现之前第5步中3306端口的开放规则居然消失了。

原来刚才设置的那个只是临时规则,重载firewall后该规则就失效了。

要想设置永久规则,Configuration处得先设为Permanent。如下图:

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

再次打开Ports页,单击Add按钮,输入端口号3306后确认。

这回不管重启几次centos都可以顺利远程登录了。

/*接下来该DEV C++了,没想到这一步居然这么难,用了将近8个小时才搞定。*/

8.首先需要下载mysql的devpak,devpaks.org 不知何故被墙,dev c++无法更新。只好使用*通过浏览器访问,最终找到了下载地址。

9.下载后通过dev c++的“工具-Package Manager-Install”安装“MySQL-6.1.5-1aved.DevPak”

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

10.安装成功后,进入dev c++的“工具-编译选项”

a.编译器页中的连接器加入命令“-lmysql”

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

b.目录页-c包含文件页/c++包含文件页添加mysql包路径“dev-cpp安装目录\include\MySQL”

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

11.将“dev-cpp安装目录\lib“中的”libmysql.dll“拷入"C:\Windows\SysWOW64",否则编译时系统会报错。

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

如果还报错,那就拷到"C:\Windows\system32"

12.编译例程

#include 
#include 
#include 

int main(int nArguments, char *pszArguments[])
{
	 MYSQL *conn;
	 MYSQL_RES *res;
	 MYSQL_ROW row;
	char *server = "192.168.124.128";//第一步中确认的centos服务器ip
	char *user = "root";
	char *password = "123456"; /* 此处改成你的密码 */
	char *database = "mysql";
	conn = mysql_init(NULL);
	/* Connect to database */
	if (!mysql_real_connect(conn, server,
			user, password, database, 0, NULL, 0)) {
		fprintf(stderr, "%s\n", mysql_error(conn));
	}
	/* send SQL query */
	if (mysql_query(conn, "show tables")) {
		fprintf(stderr, "%s\n", mysql_error(conn));
	}
	res = mysql_use_result(conn);
	/* output table name */
	printf("MySQL Tables in %s database:\n",database);
	while ((row = mysql_fetch_row(res)) != NULL) printf("%s \n", row[0]);
	/* close connection */
	mysql_free_result(res);
	mysql_close(conn);
	//system("PAUSE");
	return 0;
}
运行结果如图:

数据分析系统DIY2/3:本地64位WIN7+DEVC++编译程序操作VMwareCen

任务二,mission accomplished!