mysql 简单使用手册
来源:互联网 发布:2016淘宝营业额 编辑:程序博客网 时间:2024/05/18 02:28
Mysql 简单使用总结
今天说是要测试mysql在插入大数据类型时的性能,所以我就下载了Mysql5.0以及mysql odbc driver 3.51版本,可是还是不会使用。在网上搜资料啊,不断的尝试啊,总算是能上数据库启动起来了。今天写成个简单的帖子,让Mysql初学者或者简单应用mysql的人有点看头。
1. 安装Mysql
这个比较简单,就是最按照提示安装就可以了,但是有一个地方需要注意,那就是配置Mysql数据库的时候设置密码的地方,一定要记住密码,否则client工具就启动不起来了。
2. 一般来说,安装完毕后,mysql 就已经启动起来了,打开任务管理器,可以看到mysqld-nt.exe在运行,这个就是服务器了。如果想重启这个服务,可以在任务管理器中将这个进程停止,然后在控制面板—>管理工具—>服务àmysql 启动。(我还没有找到其他的方法)。
3. 使用客户端工具Mysql.
开始à程序àMysqlàmysql server5.0àmysql,这个时候需要输入密码,如果密码正确,则会出现
mysql>
这样的提示,如果密码错误,就会直接退出。这里输入的密码就是在配置Mysql数据库的时候设置的密码。
数据库客户端启动了,那么我们现在需要连接数据库,不知道为什么Mysql不用connect to xxx这样的语法,而是用了一个非常奇怪的语法:
例如,我们新建了一个数据库:create database test;
这时,我们使用
Mysql > use test;
就连接到了test数据库,连接建立后,我们就可以做一系列的简单操作了。
4. 服务器:一般来说,mysqld-nt.exe启动以后,所有的数据库都已经启动了。、
5. 通过ODBC数据源来连接数据库
控制面板—>管理工具àODBC数据源à系统DSNà添加àMysql odbc 3.51 driver
Database name : 这个就是你在程序中要使用的名字
Descriprion: 这个不重要,写不写都可以
Server : 如果是本台计算机,就写127.0.0.1,否则,请写入正确的IP。
Port : 默认是3306,如果你修改过,请填入正确的端口
User : root (这里我不知道为什么是root,可能是受linux的影响吧)
Passwd: 密码,这里输入的密码就是在配置Mysql数据库的时候设置的密码。
Database:如果以上设置成功,拉开下拉式菜单,就可以看到所有的数据库。
设置完了以后,可以test来测试是否成功。
6. 关于编码
a)查看默认字符集(默认情况下,mysql的字符集是latin1(ISO_8859_1)
通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
b)修改默认字符集
最简单的修改方法,就是修改mysql的my.ini(linux系统为my.cnf)文件中的字符集键值,
如
在[client]下面加上
default-character-set = utf8
在[mysqld]下面加上
character_set_server = utf8
default-character-set = utf8
character-set-server = utf8
collation-server = latin1_swedish_ci
init_connect = 'SET collation_connection = utf8_general_ci'
init_connect = 'SET NAMES utf8'
修改完后,重启mysql的服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
c) 还有一种修改字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
服务器将character_set_system系统变量设置为元数据字符集的名
7.实际范例:
#include <stdio.h>
#include <string.h>
//#include <sql.h>
#include <windows.h>
#include <sqlext.h>
//#include <sqlopt.h>
#include <sqltypes.h>
#define DBNAME "mysqlu8db"
#define UID "root"
#define PWD "test"
#define BUFSZ 10
void main()
{
HENV henv;
HDBC hdbc;
HSTMT hstmt;
char buf[BUFSZ+1] ="乐乐乐乐乐";
int len1,prgbvar;
int rc;
SQLCHAR sqlstate[100] = {0};
SQLCHAR errmsg[1000] ={0};
SQLSMALLINT pfnativeerror,szerrmsg;
rc = SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv);
rc = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void *)SQL_OV_ODBC3,0);
rc = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
rc = SQLSetConnectAttr(hdbc,SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_ON,0);
rc = SQLConnect(hdbc,DBNAME,SQL_NTS,UID,SQL_NTS,PWD,SQL_NTS);
if(rc)
printf("connect error");
rc = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
rc = SQLExecDirect(hstmt,"drop table testclob",SQL_NTS);
rc = SQLExecDirect(hstmt,"set character_set_client=gbk",SQL_NTS);
rc = SQLExecDirect(hstmt,"set character_set_connection=gbk",SQL_NTS);
rc = SQLExecDirect(hstmt,"set character_set_results=gbk",SQL_NTS);
//rc = SQLExecDirect(hstmt,"drop table testclob",SQL_NTS);
//rc = SQLExecDirect(hstmt,"drop table testclob",SQL_NTS);
rc = SQLPrepare(hstmt,"create table testclob(c1 long varchar)",SQL_NTS);
rc = SQLExecute(hstmt);
rc = SQLPrepare(hstmt,"insert into testclob values(?)",SQL_NTS);
len1 = SQL_DATA_AT_EXEC;
rc=SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_LONGVARCHAR,0,0,NULL,0,&len1);
rc = SQLExecute(hstmt);
if(rc == SQL_NEED_DATA)
{
while((rc = SQLParamData(hstmt,(PTR FAR *)&prgbvar)) == SQL_NEED_DATA)
{
rc = SQLPutData(hstmt,buf,BUFSZ);
}
if(rc)
{
SQLError(henv,hdbc,hstmt,sqlstate,&pfnativeerror,errmsg,1000,&szerrmsg); ------------------------------------------------------10
}
}
rc = SQLDisconnect(hdbc);
}
在标记为10的地方(蓝色字体的部分),rc返回的是-1,errmsg的内容是“data too long for column 1 in ‘c1’”,我但是非常奇怪,不知道出现了什么问题,
用Mysql去看:
Mysql > select * from testclob;
Empty set (0.02s)
几次折腾,上网搜集,才找到解决的办法:
在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的STRICT_TRANS_TABLES,去掉,或者把
sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
注释掉,然后重启mysql就ok了
至于具体的原因,我到现在还不知道。
- mysql 简单使用手册
- Linux下 mysql & oracle 简单使用手册
- mysql使用手册
- mysql使用手册
- mysql使用手册
- MYSQL使用手册
- MySQL使用手册
- GDB简单使用手册
- JUnit简单使用手册
- SIPp简单使用手册
- SVN简单使用手册
- SIPp简单使用手册
- Mac Git简单使用手册
- zlib简单使用手册
- SIPp简单使用手册
- instruments简单使用手册
- Kotlin简单使用手册
- git简单使用手册
- 常用数据类型使用转换详解
- 简易自制冰淇淋(本来想叫朗姆酒冰淇淋,酒好像挥发了)
- apache virtualhost 配置
- 15/4/2008
- Java正则表达式入门
- mysql 简单使用手册
- Java-面向对象的含义
- 网络几个问题
- Vs.Net2008中混合使用C/C++遇到的问题
- 明天就要上班了
- VC++多线程应用--代码清单二:链表
- xsl学习的改进
- Daily Share( 20080415)
- 学习JSON:格式转换之XML to JSON