当前位置: 首页 > 工具软件 > unixODBC > 使用案例 >

unixODBC安装(ubuntu + mysql+unixodbc)

陶璞
2023-12-01
 这几天真是郁闷死了,基本每天都在编译安装QT和unixODBC,无奈总会出现些莫名其妙的错误。首先,我承认我Linux玩地不熟,但这些开源软件产商之间的兼容性也太差了吧。所以还是制定个标准比较好,大家都遵守一个约定。从这个意义来说,微软的垄断,还是有一定的好处的。
      最终QT还是没有安装成功,此前有一个版本,经过小的改动已经能编译安装成功了,不知为什么,后来怎么也安装不上,晕阿。后来发现,安装unixODBC可以不启用QT功能,虽然没有图形界面,但核心功能是有的。况且,这个驱动管理器最终还要移植到一个嵌入式操作系统上,相互依赖的组件越多,组件也越难移植。下个星期把unixODBC移植到VxWorks上,估计问题不少......
      结合网络上下载的一些资料,把最近工作的的东西总结下。
      1.安装unixODBC组件:
      (1).在ubuntu下,利用新立德下载命令,很容易就能安装unixODBC
      apt-get  install  unixODBC
      (2)利用源码,编译安装(我用的版本是unixODBC-2.2.14)
      # tar vxzf unixODBC-2.2.14.tar.gz
      # cd unixODBC-2.2.14
      # ./configure --enable-gui=no (不利用qt画界面,添加--enable-gui=no)
      # make
      # make install      
      通过上面介绍的两种方法,就把unixODBC组件安装成功了。
    2.测试unixODBC组件是否能用,即是否能通过数据源访问数据库。
    (1)安装mysql,同样可以利用新立德下载管理工具。
        apt-get install mysql-server  mysql-client      
    (2)注意:安装mysql后,并没有安装mysql的odbc驱动,因此,还需下载对应的驱动
       apt-get install libmyodbc
    (3)写配置文件,建立自己的数据源
      UNIXODBC的配置文件主要是usr/local/etc/odbcinst.ini以及usr/local/etc/odbc.ini。前者用于配置驱动程序,后者用于保存系统DSN。刚才安装了MySQL的驱动程序,需要把它的配置信息填写到/etc/odbcinst.ini内。现在打开你所喜爱的编辑器,编辑/etc/odbcinst.ini:
[MySQL] 
Description = MySQL 
driver for Linux Driver = /usr/lib/odbc/libmyodbc.so 
Setup = /usr/lib/odbc/libodbcmyS.so 
FileUsage = 1

配置信息依次是驱动程序描述、驱动程序位置、配置程序位置、驱动程序使用次数。实际的驱动程序位置依Linux发行版的不同而有所差异。 Ubuntu通常位于/usr/lib/odbc/下。Suse位于/usr/lib/unixODBC/。RedHat等发行版可能有所不同。

然后是配置DSN,接下来我们创建一个名为HustMysqlDB的DSN。编辑usr/local/etc/odbc.ini文件

[HustMysqlDB] 
Description = The Database for HustMysql
Trace = On 
TraceFile = stderr
Driver = MySQL 
SERVER = localhost 
USER = root 
PASSWORD = mypassword 
PORT = 3306 
DATABASE = HustMysql
在配置文件里,DSN的名字即为Section的名字。在配置信息中,有一部分配置项是ODBC使用的,另一部分则由驱动程序处理。如果操作完全正确的话,现在ODBC已经成功了。可以试下isql命令操作刚配置的DSN。
(4)测试DSN 
$ isql HustMysqlDB -v 
+---------------------------------------+ 
| Connected!                            | 
|                                       | 
| sql-statement                         | 
| help [tablename]                      | 
| quit                                  | 
|                                       | +---------------------------------------+
注:-v参数是为了显示调试信息,便于出错时,显示信息方便调试。
 
另外,贴一点关于mysql的常用命令。
1.启动mysql:mysqld_safe &
2.停止mysql:mysqladmin -uroot -ppassw0rd shutdown 注意,u,p后没有空格
3. 设置mysql自启动:把启动命令加入/etc/rc.local文件中
4. 允许root远程登陆:

1)本机登陆mysql:mysql -u root -p (-p一定要有);改变数据库:use mysql;

2)从所有主机:grant all privileges on *.* to root@"%" identified by "passw0rd" with grant option;

3)从指定主机:grant all privileges on *.* to root@"192.168.11.205" identified by "passw0rd" with grant option; flush privileges;

4) 进mysql库查看host为%的数据是否添加:use mysql; select * from user;

5. 创建数据库,创建user:

1) 建库:create database test1;

2) 建用户,赋权:grant all privileges on test1.* to user_test@"%" identified by "passw0rd" with grant option;

3)删除数据库:drop database test1;

6. 删除权限:

1) revoke all privileges on test1.* from test1@"%";

2) use mysql;

3) delete from user where user="root" and host="%";

4) flush privileges;

8. 显示所有的数据库:show databases; 显示库中所有的表:show tables;

9. 远程登录mysql:mysql -h ip -u user -p

 类似资料: