MySQL、Oracle等数据库安装、配置、优化、二次开发。
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]
  除了 Oracle 买了 Sun 这件事之外,还有一件重要的事,就是 Sun 发布了 MySQL 5.4 预览版。根据其 EAStress2004 benchmark 测试,MySQL 5.4 比 MySQL 5.1 快了 59%。有空我下载下来自己做个测试。

  更多内容见:

  《A Quick Look at MySQL 5.4》:http://dev.mysql.com/tech-resources/articles/mysql-54.html

  MySQL 5.4 下载地址:http://dev.mysql.com/downloads/mysql/5.4.html

  [文章作者:张宴 本文版本:v1.0 最后修改:2009.04.21 转载请注明原文链接:http://blog.s135.com/post/411/]

  1、下载Oracle即时客户端程序包 — Basic: 运行 OCI、OCCI 和 JDBC-OCI 应用程序所需的所有文件

  ①、打开以下网址(本文以32位版为例):
  (Linux 32位版)http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
  (Linux 64位版)http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxx86_64soft.html

  ②、下载以下几个文件:
oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm


  2、安装Oracle即时客户端程序包
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
echo "/usr/lib/oracle/11.1/client/lib/" > /etc/ld.so.conf.d/oracle_client.conf
/sbin/ldconfig


  3、安装OCI8 PHP扩展(使用PHP自带的OCI8,假设PHP程序安装在/usr/local/webserver/php/)
yum install libaio
wget http://pecl.php.net/get/oci8-1.3.5.tgz
tar zxvf oci8-1.3.5.tgz
cd oci8-1.3.5/
/usr/local/webserver/php/bin/phpize
CFLAGS="-I/usr/include/oracle/11.1/client/"
CXXFLAGS="-I/usr/include/oracle/11.1/client/"
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=/usr/lib/oracle/11.1/client/
make
make install


  4、修改PHP配置文件(/usr/local/webserver/php/etc/php.ini)
在extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"后增加一行:
extension = "oci8.so"


  5、重启PHP

  6、创建一个phpinfo.php文件(内容如下)并通过Web访问,如果有“oci8”这一项,则表明安装成功。
<?php
phpinfo();
?>

  点击在新窗口中浏览此图片
Tags: , ,
  High Performance MySQL Second Edition

点击在新窗口中浏览此图片  作者: Baron Schwartz / Peter Zaitsev / Vadim Tkachenko / Jeremy Zawodny / Arjen Lentz / Derek Balling

  副标题: Optimization, Backups, Replication, and More
  ISBN: 9780596101718
  页数: 708
  定价: USD 49.99
  出版社: O'Reilly Media, Inc.
  装帧: Paperback
  出版年: 2008-06-18

  High Performance MySQL is the definitive guide to building fast, reliable systems with MySQL. Written by noted experts with years of real-world experience building very large systems, this book covers every aspect of MySQL performance in detail, and focuses on robustness, security, and data integrity.

  High Performance MySQL teaches you advanced techniques in depth so you can bring out MySQL's full power. Learn how to design schemas, indexes, queries and advanced MySQL features for maximum performance, and get detailed guidance for tuning your MySQL server, operating system, and hardware to their fullest potential. You'll also learn practical, safe, high-performance ways to scale your applications with replication, load balancing, high availability, and failover.

  This second edition is completely revised and greatly expanded, with deeper coverage in all areas. Major additions include:
  * Emphasis throughout on both performance and reliability
  * Thorough coverage of storage engines, including in-depth tuning and optimizations for the InnoDB storage engine
  * Effects of new features in MySQL 5.0 and 5.1, including stored procedures, partitioned databases, triggers, and views
  * A detailed discussion on how to build very large, highly scalable systems with MySQL
  * New options for backups and replication
  * Optimization of advanced querying features, such as full-text searches
  * Four new appendices
  The book also includes chapters on benchmarking, profiling, backups, security, and tools and techniques to help you measure, monitor, and manage your MySQL installations.
Tags:
  [文章作者:张宴 本文版本:v1.0 最后修改:2008.07.24 转载请注明原文链接:http://blog.s135.com/post/359/]

  写了一个shell脚本,可以在同一台Linux服务器的不同端口,运行多个MySQL服务的情况下,快捷启动、停止、重启、杀死指定端口的MySQL进程。

vi /usr/local/bin/mysql.sh

  输入以下内容(因各服务器的MySQL配置不同,可能需要修改的部分已用红色标注):
#!/bin/sh

mysql_port=$2
mysql_username="root"
mysql_password="123456"

function_start_mysql()
{
    printf "Starting MySQL...\n"
    /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    /usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -h localhost -P ${mysql_port} shutdown
}

function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    function_start_mysql
}

function_kill_mysql()
{
    kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
    kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}

if [ "$1" = "start" ]; then
    function_start_mysql
elif [ "$1" = "stop" ]; then
    function_stop_mysql
elif [ "$1" = "restart" ]; then
    function_restart_mysql
elif [ "$1" = "kill" ]; then
    function_kill_mysql
else
    printf "Usage: mysql.sh {start|stop|restart|kill}\n"
fi


  赋予脚本可执行权限:
chmod +x /usr/local/bin/mysql.sh


  脚本执行方法:
mysql.sh start 3306
mysql.sh stop 3306
mysql.sh restart 3306
mysql.sh kill 3306

Tags: , , , ,
  [文章作者:张宴 本文版本:v1.1 最后修改:2008.06.02 转载请注明出自:http://blog.s135.com]

  TCMalloc(Thread-Caching Malloc)是google开发的开源工具──“google-perftools”中的成员。与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多,可以在很大程度上提高MySQL服务器在高并发情况下的性能,降低系统负载。

  TCMalloc的实现原理和测试报告请见一篇文章:《TCMalloc:线程缓存的Malloc

  为MySQL添加TCMalloc库的安装步骤(Linux环境):

  1、64位操作系统请先安装libunwind库,32位操作系统不要安装。libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz
tar zxvf libunwind-0.99-alpha.tar.gz
cd libunwind-0.99-alpha/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install


  2、安装google-perftools:
wget http://google-perftools.googlecode.com/files/google-perftools-0.97.tar.gz
tar zxvf google-perftools-0.97.tar.gz
cd google-perftools-0.97/
./configure
make && make install

echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig


  3、修改MySQL启动脚本(根据你的MySQL安装位置而定):
vi /usr/local/mysql/bin/mysqld_safe

  在# executing mysqld_safe的下一行,加上:
引用
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

  保存后退出,然后重启MySQL服务器。


  4、使用lsof命令查看tcmalloc是否起效:
/usr/sbin/lsof -n | grep tcmalloc

  如果发现以下信息,说明tcmalloc已经起效:
  mysqld    10847   mysql  mem       REG        8,5  1203756   20484960 /usr/local/lib/libtcmalloc.so.0.0.0  



  注:2008年6月2日,修正了libunwind在x86_64位操作系统下的编译错误,TCMalloc无法加载等问题。

  涉及修改内容:
  1、libunwind的编译参数改为:
  CFLAGS=-fPIC ./configure
  make CFLAGS=-fPIC
  make CFLAGS=-fPIC install

  2、增加:
  echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
  /sbin/ldconfig

  3、修改MySQL加载TCMalloc的语句:
  export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

  感谢网友router。

Tags: , , ,
  2008年4月18日,在Alexa安排的一次“Scaling MySQL -- Up or Out?”的小组辩论中,MySQL、Sun、Flickr、Fotolog、Wkipedia、Facebook、YouTube等国际知名网站的DBA们,对其网站MySQL数据库服务器、Web服务器、缓存服务器的数量,MySQL版本,编程语言类型,操作系统类型等问题进行了回答。

  点击在新窗口中浏览此图片

  [文章作者:张宴 本文版本:v1.0 最后修改:2007.08.06 转载请注明出处:http://blog.s135.com]

  我一直习惯用phpMyAdmin对MySQL数据库进行管理,曾修改了一个《可管理多台远程MySQL服务器的phpMyAdmin 2.10.2》。但有些机器上因为安全等因素,只设置了允许从本机访问自身的MySQL端口,而且没有安装Apache和PHP,因而不能使用phpMyAdmin。于是,我只好使用命令行方式来对MySQL数据库进行管理。为了方便以后从命令行操作数据库可以更方便(拷贝、粘贴),我写下了这篇文章。

一、从命令行登录MySQL数据库服务器
1、登录使用默认3306端口的MySQL
/usr/local/mysql/bin/mysql -u root -p

2、通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能)
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307

3、通过socket套接字管理不同端口的多个MySQL
/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock

4、通过端口和IP管理不同端口的多个MySQL
/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1



二、数据库操作SQL语句
1、显示服务器上当前存在什么数据库
SHOW DATABASES;

2、创建名称为rewin的数据库
CREATE DATABASE rewin;

3、删除名称为rewin的数据库
DROP DATABASE rewin;
Tags: , ,
  我博客上的图片原来都存放在www.s135.com服务器上,由于该服务器不稳定,于是我将所有图片切换到了blog.s135.com服务器上,同时在MySQL数据库中,将字符串www.s135.com批量替换为blog.s135.com。为了方便以后使用,我将这条“将字符串aaa批量替换为bbb”的SQL语句记录在此:
引用
UPDATE 表名 SET 字段名 = REPLACE (字段名, 'aaa', 'bbb');
Tags:
  4月,我曾写过一篇文章《修改phpMyAdmin使其能够管理多台远程MySQL服务器》。今天架设sina播客测试环境时,再次用到phpMyAdmin管理远程数据库,于是干脆根据其最新版本V2.10.2做了一个可直接下载使用的、可管理多台远程MySQL服务器、同时支持Windows和Linux的phpMyAdmin 2.10.2。

  下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024

  点击在新窗口中浏览此图片
Tags: , ,
  昨天,校党委宣传部的W老师打电话向我寻求帮助,说中南民大论坛MySQL数据库发生故障,他们试图用5月7日的数据库备份去恢复,但没有成功。我晚上回宿舍后,登录到民大论坛服务器上一看,原来是论坛MySQL数据库的一张MySQL表损坏。根据我的经验,成功修复MySQL损坏表的概率是90%,根本没有必要急着去用旧的数据库备份去恢复,何况备份又不及时,5月7日到发生故障的5月22日,意味着要丢失15天的数据啊。

  我修复了5月22日的数据库,故障发生之前的数据没有丢失。方法很简单,四步即可搞定。

  ①、用root帐号从命令行登录MySQL:
  mysql -u root -p

  ②、输入root帐号的密码。

  ③、选定数据库名(本例中的数据库名为studentmis):
  use studentmis;

  ④、修复损坏的表(本例中要修复的表为smis_user_student):
  repair table smis_user_student;
Tags: ,
[文章作者:张宴 本文版本:v1.2 最后修改:2007.07.09 转载请注明出处:http://blog.s135.com]

需求背景:
  phpMyAdmin是一款不错的MySQL在线管理工具,但phpMyAdmin的cookie登录方式只能输入MySQL数据库的用户名和密码,而想更改MySQL服务器地址和端口则须修改其配置文件config.default.php。当拥有多台数据库服务器,每台服务器又在不同端口启动了多个MySQL服务,每次都修改配置文件就显得很麻烦,因此需要能够在登录界面直接输入MySQL服务器地址和端口的功能。

功能要求:
  假设phpMyAdmin的访问网址为http://192.168.1.25/phpmyadmin/,能够通过输入MySQL服务器地址、端口、用户名、密码登录远程MySQL服务器,对远程数据库进行管理。

修改后的phpMyAdmin登录入口截图:
点击在新窗口中浏览此图片

下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024

实现步骤:
Tags: , ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]