Posts Tagged mysql
让Openoffic与你的数据库对接
Openoffice从2.0版本开始,增加了Openoffic Base组件。这个组件功能类似于MS Access,同样允许你通过ODBC 或 JDBC 连接到外部数据库。本文就Ubuntu下的ODBC连接mysql为例。
安装 unixODBC 和 MyODBC :
#sudo apt-get install unixodbc unixodbc-bin libmyodbc
其中“unixodbc-bin”是一系列图形化的工具,可以不安装。
设置unixODBC:
#sudo ODBCConfig
开启ODBC的控制面板,与windows的几乎一样的布局。
System DSN->ADD…按钮

继续ADD

这里的Name和Description随便写就可以了,Driver 为 /usr/lib/odbc/libmyodbc.so
Setup 为 /usr/lib/odbc/libodbcmyS.so ,其余的默认就好了。对于其它不是Ubuntu的用户,只要确保安装了MyODBC,不妨直接搜索文件名将路径贴过来就可。结束后“对勾”按钮保存结束。

到了这一步就没有太大难度了,Name随便,Server添数据库服务器的IP地址,Port Mysql的端口,默认3306,Database下拉列表中选择需要连接的数据库。其余空着,对勾。
设置成功!OK结束。
设置OpenOffice Base:

这里选择“连接到现有数据库”下拉列表选择ODBC,我试过选择Mysql不过到头来还是通过了ODBC连接。

如果前面ODBC设置正确,这里会出现数据源列表。

数据库的用户名、密码,同时还有测试按钮。
OK,搞定!
现在就可以利用OpenOffice Base来直接向数据库中导入、导出数据了,对于数据库开发来说,利用图形化的界面搭建数据库是非常惬意的了。
Samba 3.0.10 的 MySQL 用户表验证
Samba 让 Linux 的灵活性表露无遗。在公司的局域网内部,我十分喜欢 Samba 的自由自在。
安装和编译的步骤并不复杂,但是需要了解为了支持 MySQL 认证,编译时需要的参数,以及配置时采用正确的参数。
编译命令:
$ ./configure –with-expsam=mysql –with-mysql-prefix=/opt/mysql
如果以上命令成功的话,然后就是 make ; make install 了。
然后拷贝一个 examples 下的 smb.conf 到 /usr/local/samba/lib 。
用 /usr/local/samba/sbin/smbd -D 即可启动。
用 smbstatus 命令可以查看 Samba 服务器的状态。
下面配置 MySQL 的支持。 和 MYSQL 相关的配置有以下几行:
[global]
# passdb backend = plugin:/usr/local/samba/lib/pdb/mysql.so:mysql
passdb backend = mysql:mysql
mysql:mysql host = localhost #主机名
mysql:mysql port = nnnn #端口号,默认3306
mysql:mysql user = samba #mysql用户
mysql:mysql password = password #mysql密码
mysql:mysql database = smb_user #数据库名
mysql:mysql table = user #数据表,似乎没有用处
……
建立 smb_user.user 表的脚本可以从 examples/pdb/mysql 目录下的 mysql.dump 导入,如果使用的版本是samba3,还需要单独手工增加“logon_hours"键值,这个目录下的 smb.conf 是一个最简单的配置,可以供参考。但是这个文件有几个地方是错的。
最主要的就是上面注释掉的那行,我发现根据这个 sample 不能使用,后来修改为简单的
mysql:mysql 后就能使用了。
具体的调试还是必须看相关的日志文件,如果是数据库连接错误,相关的日志文件会报告数据库不能连接的错误。
这样,一个基于 MySQL 用户的 Samba 系统建立了起来。
如果安装了swat,可以运行一下,重新格式化一下配置文件,这样看起来更方便一些。
但是,目前没有现成的完全基于 PHP 的针对 Samba 口令的修改程序。因为 user 表中的 lm_pw 和 nt_pw 分别代表口令的散列,其算法相对比较复杂, 远远不是 PHP 和 MySQL 提供的 encrypt() md5() 之类的函数能解决的。
如果有读者已经发现或者已经研发出纯 PHP 的修改 lm_pw 和 nt_[pw 字段的程序,欢迎一起交流。
mysql在不同操作系统下的性能
网上有很多关于硬件的测评,前不久,我找到了不同操作系统下Mysql的测评,比较有趣。不过讲老实话,由于我刚刚经历了数月的mysql折磨—传说中mysql的极限竟然被我遇上了(话外音:应该买彩票)。我现在似乎已经不太敢用mysql做项目了。
操作系统:
gentoo (kernel 2.4.28)
gentoo (kernel 2.6.10)
NetBSD 2.0
FreeBSD 5.3 KSE
FreeBSD 5.3 LT
FreeBSD 4.11 (libc_r)
FreeBSD 4.11 LT
OpenBSD 3.6
Solaris 10 (b69)
Super Smack 1.2测试1,2cpu下的SELECT-KEY和UPDATE-KEY的效能:
命令:
super-smack /usr/share/smacks/select-key.smack 10 10000
super-smack /usr/share/smacks/update-select.smack 10 10000
| |
| |
| |
| |
SysBench 0.3.1 1M 的数据Rows测试数据库性能,同样也是1,2CPU的资料:
命令:
To setup:
sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=1000000 prepare
To run:
sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=1000000 run
To cleanup:
sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=1000000 cleanup
10M Rows:
To setup:
sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=10000000 prepare
To run:
sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=10000000 run
To cleanup:
sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=10000000 cleanup
| |
| |
同上,只是 10M 的Row
| |
| |
Super Smack的综合
| |
SysBench 的综合:
| |
| |
该测评的最终结论:
Linux2.4 2.6 以及Solaris比较适合运行mysql, FreeBSD 5.3 (KSE and linuxthreads), and FreeBSD 4.11 表现一般,而其余的很不适合多处理器,而个别案例说明他对于单个处理器还是有优势可言的。
后面的还有很多评语,苦于本人的英语水平有限,只等说看出大概。(原文在 http://www.newsforge.com/article.pl?sid=04/12/27/1243207)
其实本人对某些测试结果持怀疑态度:
1.其实操作系统内核是可以根据需要进行优化和重编的,
2.而且对于FreeBSD的测试都是基于Linux模拟方式进行的,对于FreeBSD评价有失公平。
3.Solaris的磁盘格式非常适合数据库存储,本人就有采用Solairs的磁盘格式优化linux下mysql的经历。
启动多个mysqld
为达到启动多个mysqld服务,只要启动时使用不同pid-file,datadir,socket,port是完全的可行。
步骤:
1、准备目录
mkdir /mysql1
chown mysql:mysql /mysql1
chmod 755 mysql /mysql1
2、准备新的服务要读取的数据库
cp /path/to/mysql/var /mysql1
3、创建mysqld启动脚本
#start_msyql
#!/bin/sh
rundir="$1"
port="$2"
echo "$rundir"
/www/mysql/bin/safe_mysqld –user=mysql –pid-file="$rundir"/mysql.pid
–datadir="$rundir"/var -O max_connections=500 -O wait_timeout=600 -O key_buffer=32M
–port="$port" –socket="$rundir"/mysql.sock &
说明:
脚本使用方法./start_mysql /mysql1 3307
./start_mysql dir port
dir:指的是mysql数据库及运行时产生的文件所在目录
port:指新的mysqld监听的端口
4、创建mysqld的停止脚本
#stop_mysql
#!/bin/sh
rundir="$1"
echo "$rundir"
/www/mysql/bin/mysqladmin -u root -p -S"$rundir"/mysql.sock shutdown


最近评论