Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54450
  • 博文数量: 27
  • 博客积分: 930
  • 博客等级: 准尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-22 14:30
文章存档

2010年(27)

我的朋友

分类:

2010-03-29 14:20:26

本篇所有的操作完全以Linux redhat5 2.6.18-8e15为标准,其自带并安装的mysql数据库为mysql-5.0.22unixODBC2.2.11。Qt为qt3.3

需单独安装的程序为:

1)oracle数据库单独安装,服务器版本为oracle

2)Qt4.3.3商业版

操作篇

1.1    启动数据库服务器 在终端中输入命令#service mysqld start

1.2    开机自启动设置 在终端中输入命令#chkconfig mysqld on

2.1 当首次安装完成mysql后,其默认超级用户为root ,并且密码为空。

2.2 下面给出了连接服务器常用的选项:

#mysqladmin –u root –p password newXXX –h serverhostname  –protocal=tcp –P 3306  - -default-character-set=utf8  databasename

- -default-character-set设置使用的字符集,显示所有字符集列表使用mysql>show collation;

-port=n 默认使用端口3306,单独设置请查阅/etc/my.cnf

-protocal=tcp 使用的协议方式四种:tcp(网络连接),socket(Linux/Unix的本地连接),pipe

 

3.1          进入mysql,创建一个新用户xuys
 
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
 grant select,update,insert,delete on *.* to
identified by "xuys1234";
  
查看结果,执行:
   use mysql;
   select host,user,password from user;
  
可以看到在user表中已有刚才创建的xuys用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
  
host字段的值改为%就表示在任何客户端机器上能以xuys用户登录到mysql服务器,建议在开发时设为%
   update user set host = '%' where user = 'xuys';

3.2          ./mysqladmin -uroot -p21century reload

 ./mysqladmin -uroot -p21century shutdown

3.3          ./mysqld_safe --user-root &

记住:对授权表的任何修改都需要重新reload,即执行第3步。

3.4          如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在mysql数据库的db表中插入一条记录:
use mysql;
insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
update db set host = '%' where user = 'xuys';
重复执行上面的第23步。

工具

3.1   登陆客户端

#mysql –u root –p

Enter password:XXX

3.2 添加新用户

sql>insert into mysql.user(host,user,password) values(‘%’,’John’,PASSWORD(‘Johnpassword’));

sql>flush privileges;

3.3 查看mysql的版本

sql>select version();

3.4 查看当前监听的端口

#netstat –tlp | grep mysql

3.5 查询结果到文本的输出(纵向文本显示,html格式显示,xml格式显示)

#mysql –u root –p - - vertical “- -execute=SELECT * FROM titles;” test>testfile.txt

#mysql –u root –p - - html “- -execute=SELECT * FROM titles;” test>testfile.txt

#mysql –u root –p - - xml - - default-character-set=utf8 “- -execute=SELECT * FROM titles;” test>testfile.txt

3.6 使用帮助,查询相关信息

sql>\h   列出所有命令清单

sql>help contents ;//根据分类列出可提供帮助的主题

sql>help data types

sql>help time

 添加可进行网络访问的用户

sql>grant all on *.* to John@’%’ identified by ‘JohnPassword’ [with grant option]

mysql的默认端口3306。

#mysql –h IP(或主机名) –u root –p

数据库

1#vi /etc/sysconfig/network

HOSTNAME=newhostname

2)# vi  /etc/hosts

newhostname

3)配置并启动samba服务器

#chkconfig - -list | grep smb        //查看是否samba服务器开机自启动

#chkconfig smb on          //设置为samba服务器开机自启动

#pgrep smbd pgrep nmbd  或  service smb status  //查看是否进程在运行

#service smb start      //启动服务

4.5.1 使用如下命令查出mysqlMySQL服务器在通信时使用的字符集:

sql>status

许多主流的Linux发行版本把utf8,或latin1(ISO-8859-1)latin2(ISO-8859-2)作为默认字符集。如果mysql程序和MySQL服务器在通信时使用的字符集不同,就会造成某些不常用的特殊字符无法正确显示。可以用以下两种方法解决:

1)像往常一样启动mysql程序,启动后立刻执行SQL命令set NAMES ‘languagename’’languagename’为控制台窗口能够支持的某种字符集的名字。通常latin1utf8字符集不会有什么问题。

2)使用如下命令连接服务器:

#mysql –h XXX –u root –p - -default-character-set=languagename

4.5.2 数据库字符集

sql>create database mygbklib default character set gbk;   //数据库的字符集

sql>create table Event(id int,name varchar(30)) default character set gbk; //某表使用的字符集

#mysql –h XXX –u root –p - -default-character-set=gbk;   //连接字符集

sql>status                  //查看当前使用的字符集

在终端中,通过“终端”->“设定字符编码”  //更改客户端字符集

4.5.3 应用程序与Mysql服务器进行连接的中文问题

1)      linux下使用ODBC连接

由于ODBC本身也涉及到使用的字符集的问题,因此在数据源配置时,在stmt项中应添加set character set gbk(gb2312)。在应用程序中,也相应添加字符编码转换的代码,与下同。

2)      linux下的其它连接

在程序的设计中在主函数main()中加入如下代码:

QTextCodec::setCodecForTr(QTextCodec::codecForName(“gb18030”));//gbk,gb2312

//在数据库中写入中文字符

char chinese[50];

strcpy(chinese,”输入中文字符例”);

QString szChinese=QObject::tr(Chinese);

QString szCmd=QString(“insert into HELLO values(‘%1’,’222’);”).arg(szChinese);

m_pDatabase->exec(szCmd);

 

 配置MySQLODBC

加载驱动 在此系统中自带了mysql的数据库驱动libmyodbc3-3.51.12.so和数据库安装驱动libodbcmyS.so,文件都在路径/usr/lib下。

       也可以到以下mysql官方网站下载最新ODBC驱动,网址为http://dev.mysql.com/downloads

 

 重要且有效的命令

5.1检索关于数据库、表、数据列等的元数据

sql>use information_schema;   //此数据库非常重要

sql>show tables;

例:使用其中的表及其相应的含义

sql>desc information_schema.columns; 

sql>select column_name,column_default,data_type,character_set_name,collation_name

from information_schema.columns

where table_schema=’mylibrary’ and table_name=’mytable’;

information_schema数据表家族

.tables 描述了所有数据表的属性

.columns 描述了所有数据列的属性

.views 描述了所有视图的属性

.table_constraints 所有数据表的主索引、唯一化索引、索引的清单

.key_column_usage 所有索引的清单,table_constraints数据表包含更多的细节

.character_sets 所有可供选用的字符集清单

.user_privileges 全体用户的名单(来自mysql.user)  

阅读(407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~