免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1698 | 回复: 0
打印 上一主题 下一主题

[原]mysql完全定制. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-01 18:36 |只看该作者 |倒序浏览
mysql完全定制.

一般是用手动编译,但是看了mysql文档后觉得手动编译即麻烦又浪费时间,基本上我都是参考官方的编译参数

手动编译参数:

  1. CHOST="i686-pc-linux-gnu" \
  2. CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" \
  3. CXX=gcc \
  4. CXXFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" \
  5. ./configure \
  6. --prefix=/usr/local/mysql4.0.16 \
  7. --enable-assembler \
  8. --without-debug \
  9. --with-extra-charsets=complex \
  10. --with-mysqld-ldflags=-all-static
复制代码


官方编译参数:http://www.mysql.com/doc/en/MySQL_binaries.html

  1. CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2 -mcpu=pentiumpro -felide-constructors" \
  2. ./configure --prefix=/usr/local/mysql \
  3. --with-extra-charsets=complex \
  4. --enable-thread-safe-client \
  5. --enable-local-infile \
  6. --enable-assembler \
  7. --disable-shared \
  8. --with-client-ldflags=-all-static \
  9. --with-mysqld-ldflags=-all-static
复制代码


自己编译的参数和mysql官方的差不多.而且在大量的商业生产应用上,用bin版本不仅方便而且省时间.


ok.我们先来看看我们解压bin版本后应该如何定制我们的mysql

我比较习惯把mysql按版本号安装到/usr/local下,
所以比较新的mysql4.0.16的解压目录就是
/usr/local/mysql4.0.16

因为我的内存比较大2G,而且多个cpu所以,我用my-large.cnf,你们可以根据自己的情况选择不同的配置文件.
在mysql的support-files中.

我们来看看配置文件都要加什么定制的东西.

  1. [mysqld]
  2. log-error   
  3. #启用错误日值,如果没有定义路径,默认在mysql的db目录中.
  4. max_connections = 1500
  5. #最大连接数,根据官方文档,bin版本完全可以开到1500以上
  6. max_connect_errors = 200
  7. #最大连接错误数.
  8. skip-bdb
  9. #取消bdb的支持(省一些内存,如果你不用bdb的话)
  10. skip-innodb
  11. #取消innodb支持(省一些内存,如果你不用bdb的话)
  12. user = mysql
  13. #定义mysqld的启动用户
  14. basedir = /usr/local/mysql4.0.16
  15. #定义mysql的目录位置/usr/local/mysql4.0.16
  16. pid-file = /usr/local/mysql4.0.16/data/mysql.pid
  17. #定义pid文件
  18. datadir = /wwwroot/mysql_data
  19. #定义数据库文件的位置.
复制代码


一般我都习惯把数据文件同mysql的目录分开.这样比较利于mysql的升级和管理.

bin版本的启动..我们需要自己写一个脚本来启动bin版本.
mysql提供了一个mysqld_safe的脚本来启动mysql,但是在bin版本中不怎么好用.因为默认编译的路径是/usr/local/mysql
所以当你把mysql解压到其他地方的时候就不能启动mysql的.实际上mysqld_safe所做的只是带参数启动mysql而已,我们可以绕过
直接写启动脚本.


实际上所有mysqld的参数都可以在my.cnf的[mysqld]字段添加就像上面的例子一样.
具体参数在:http://www.mysql.com/doc/en/Command-line_options.html

同时一些变量也一样,(max_connections 等)具体在:http://www.mysql.com/doc/en/SHOW_VARIABLES.html

在把变量在[msyqld]字段的时候注意一下.
mysql4.x

max_connections = 1000
max_connect_errors = 500

mysql3.x版本用(4.0也能认识)

set-variable = max_connections = 1000
set-variable = max_connect_errors = 500


最后来看看启动脚本.

  1. #!/bin/sh
  2. mysqldir=/usr/local/mysql4.0.16
  3. #设置mysql的具体目录位置
  4. start() {
  5. if [ ! -f ${mysqldir}/data/mysql.pid ]; then
  6. echo "start mysql4.0.16"
  7. /usr/local/mysql4.0.16/bin/mysqld & 1>;/dev/null
  8. else
  9. echo "mysql4.0.16 is already run"
  10. fi
  11.         }

  12. stop() {
  13. if [ -f ${mysqldir}/data/mysql.pid ]; then
  14. echo "stop mysql4.0.16"
  15. kill `cat ${mysqldir}/data/mysql.pid`
  16. sleep 5
  17. echo "done"
  18. else
  19. echo "mysql4.0.16 is no run"
  20. fi
  21.         }

  22. case $1 in
  23. start)
  24. start
  25. ;;
  26. stop)
  27. stop
  28. ;;
  29. restart)
  30. stop
  31. start
  32. ;;
  33. *)
  34. echo "usage: $0 {start|stop|restart}"
  35. ;;
  36. esac
复制代码



把这个脚本复制为/etc/rc.d/rc3.d/S90mysqld

就能让mysql自动启动了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP