mysql编译说明

安装my sql
# tar zxvf mysql-4.0.14.tar.gz -C /setup
# cd /setup/mysql-4.0.14
# groupadd mysql
# useradd mysql -g mysql -M -s /bin/false
# ./configure �Cprefix=/web/mysql \ 指定安装目录
�Cwithout-debug \去除debug模式
�Cwith-extra-charsets=gb2312 \添加gb2312中文字符支持
�Cenable-assembler \使用一些字符函数的汇编版本
�Cwithout-isam \去掉isam表类型支持 现在很少用了 isam表是一种依赖平台的表
�Cwithout-innodb \去掉innodb表支持 innodb是一种支持事务处理的表,适合 企业级应用
�Cwith-pthread \强制使用pthread库(posix线程库)
�Cenable-thread-safe-client \以线程方式编译客户端
�Cwith-client-ldflags=-all-static \
�Cwith-mysqld-ldflags=-all-static \以纯静态方式编译 服务端和客户端 �Cwith-raid \激活raid支持
# make
# make install
# scripts/mysql_install_db \生成mysql 用户 数据库和表 文件
# cp support-files/my-medium.cnf /etc/my.cnf \copy配置文件,有large,medium,small三个环境下的,根据 机器性能选择,如果负荷比较大,可修改里面的一些变量的 内存使用值
# cp support-files/mysql. server /etc/init.d/mysqld \copy启动的mysqld文件
# chmod 700 /etc/init.d/mysqld
# cd /web
# chmod 750 mysql -R
# chgrp mysql mysql -R
# chown mysql mysql/var -R
# cd /web/mysql/lib exec
# cp mysqld mysqld.old
# strip mysqld
# chkconfig �Cadd mysqld
# chkconfig �Clevel 345 mysqld on
# service mysqld start
# netstat -atln
看看有没有3306的 端口打开,如果mysqld不能启动,看看/web/mysql/var下的出错日志,一般都是目录权限没有 设置好的问题
# ln -s /web/mysql/bin/mysql /sbin/mysql
# ln -s /web/mysql/bin/mysqladmin /sbin/mysqladmin
# mysqladmin -uroot password “youpassword” #设置root帐户的 密码
# mysql -uroot -p
# 输入你设置的密码
mysql>;use mysql;
mysql>;delete from user where password=”"; # 删除用于本机匿名连接的空密码帐号
mysql>;flush privileges;
mysql>;quit
●安装DBI和DBD for mysql 用于提供perl 访问mysql 数据库的接口规范,请确认你已经安装了perl,一般默认 系统都装上了
# cd /setup
# tar zxvf DBD-mysql-2.9002.tar.gz -C /setup
# tar zxvf DBI-1.38.tar.gz -C /setup
# cd DBI-1.38
# perl Makefile.PL
# make
# make test
# make install
因为有的perl 程序中perl的路径是/usr/local/bin/perl,而红帽系统默认是/usr/bin/perl,所以最好做一个连接,保证兼容性
# ln -s /usr/bin/perl /usr/local/bin/perl
# cd ../DBD-mysql-2.9002
生成安装配置文件需要在perl Makefile.PL后添加一些参数,比较麻烦,我们可以通过添加一个到/web/mysql/bin/mysql_config这个程序的连接 解决问题
系统会 自动寻找这个 命令生成安装所需要的数据库参数
# ln -s /web/mysql/bin/mysql_config /sbin/mysql_config
# perl Makefile.PL
# make
# make instll (这里make test我总是运行一半就出错,但是安装后是可以运行mysql目录下的测试脚本,不知道3.x的mysql如何)
现在你可以运行测试脚本了,不过 速度很慢,挂在后台好了
# perl /web/mysql/sql-bench/run-all-tests �Cuser=root �Cpassword=”youpassword”
附:
●mysql常见的一些有用的选项和命令
mysqld ―�C开启日志支持
�Clog
�Clog-update
�Clog-long-formart
●mysql
grant all on database.* to user identified by “password” 新建一user用户,赋予其database数据库的所有权限
revoke all on database from user 移除user用户在database数据库上的所有权限
mysql -uroot -p �Cone-database databasename < file.sql 从file.sql文件导入sql语句到databasename这个数据库里
●mysqladmin
mysqladmin flush-logs 命令mysqld重新打开一个新的日志文件,就是清空老日志文件,相当于轮回了
●mysqldump
--add-drop-table 导出sql语句时添加droptable if exists语句
--quick 快速导出
--opt 优化选项( 推荐)
●myisamchk
检查表选项
--extend-check 扩展检查
--medium-check 速度比较折中的一个检查选项
修复表选项
--recover 修复表文件
--safe-recover 安全修复表文件,比--recover要慢
修饰修复表项
--force 强制清除上次的临时文件
--quick 只根据素引文件的内容进行修复
●mysql的 管理
可以使用phpmyadmin(需要php的环境支持)和mysqlcc( linux图形界面支持,WINDOWS系统支持

-pgcc和-O6编译
CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
总体性能可提高10%,当然如果 服务器不是用奔腾处理器,就不必用它了,因为它是专为奔腾系统设计的

-static静态编译
--enable-static
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
以静态方式编译客户端和服务端,能提高13%性能

--enable-thread-safe-client
以线程方式编译客户端

--without-innodb
去掉innodb表支持,innodb是一种支持事务处理的表,适合企业级应用

--without-isam
去掉isam表类型支持,现在很少用了,isam表是一种依赖平台的表

--without-ndb-debug
取消导航调试

--localstatedir=/usr/local/mysql/var/
日志文件目录

--with-server-suffix=-enterprise-gpl
给MySQL加个后缀名,在用mysql登录的时候在版本号的后面可以看到

--without-debug
去除诊断模式,如果用--with-debug=full编译,大多数查询慢20%

--with-big-tables
大表支持

--with-extra-charsers=gbk,gb2312,utf8
设置支持gbk,gb2312,utf8字符集

--with-pthread
强制使用pthread库(posix线程库)

--enable-assembler
使用一些字符函数来汇编版本

--with-federated-storage-engine
这个参数已经被废除,代替它的是--with-plugin系列

cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
mysql/support-files里面有配置文件范本,根据实际情况选择或者更改

/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --defaults-file=/usr/local/mysql/my.cnf --pid-file=/usr/local/mysql/mysql.pid
设定默认值:默认 空间路径;默认数据文件路径;默认用户;默认配置文件路径;默认PID文件路径。
-------------------------------------------------------
本脚步未加入的编译参数:
--with-charset=utf8
设置默认字符集
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
使用unix套接字链接提高7.5%性能,所以在 windows下mysql性能肯定不如 unix
--with-tcp-port=3306
指定MySQL实例将监听TCP 3306端口

你可能感兴趣的:(数据库,mysql,职场,编译,休闲)