自己成功的编译好了mysql

今天好高兴!终于把 mysql编译成功老!

卸载原来的mysql
#rpm -e mysql 如果卸载不掉!提示文件的依赖,可以用下面的命令强制卸载掉.
#rpm -e --nodeps mysql
#rm -rf /usr/local/mysql
把mysql的文件全部删掉!
下面就来从新编译
有关编译的优化参数

1. -static 13%
   --with-client-ldflags=-all-static
   --with-mysqld-ldflags=-all-static
静态链接提高13%性能

2. -pgcc 1%
   CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \
     CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \
     -felide-constructors -fno-exceptions -fno-rtti"
如果是Inter处理器,使用pgcc提高1%性能

3. Unix Socket 7.5%
   --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面

4. --enable-assembler
允许使用汇编模式(优化性能)
   
Install and Configure MySQL on Linux

用 MySQL 有年头了,写篇简单的文档来记录下自己的常用安装和配置过程。本文旨在介绍如何在 Linux 系统上安装 MySQL 数据库服务器,以及基本配置。本文仅仅提供一份快速指南,请访问 MySQL 官方网站获取详细安装、配置指南。

OS: Red Hat Enterprise Linux AS 4.0
MySQL: 5.0.22

源码 tarball 放置在 /home/huangys , 安装目的地是/opt/mysql


1. 准备

创建一个用户来运行 MySQL 守护进程。
# groupadd mysql
# useradd –g mysql mysql

解包
# cd /home/huangys
# tar zxvf mysql-5.0.22.tar.gz

2. 配置编译选项

# cd mysql-5.0.22
# ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --with-tcp-port=3306 --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-mysqld-user=mysql --with-federated-storage-engine


选项说明:
--prefix=/opt/mysql 将MySQL安装到目录/usr/local/mysql下
--with-charset=utf8 指定缺省字符集为utf8
--with-extra-charsets=all 将MySQL所有支持的字符集编译进来
--with-tcp-port=3306 指定此MySQL实例将监听TCP 3306端口
--with-unix-socket-path=/tmp/mysql.sock 指定UNIX socket文件的路径(为绝对路径)
--wih-mysqld-user=mysqld 指定用来运行MySQL守护进程的用户
--with-federated-storage-engine 支持federated存储引擎

通过指令 configure --help 可以查看全部选项信息。


----prefix 必须指定

--with-unix-socket-path 最好指定自己的路径

3. 编译、安装

# make
# make install

4. 配置

在 MySQL 提供的支持文件中复制一个合适的配置档到 MySQL 数据目录中,并命名为 my.cnf
# cp support-files/my-medium.cnf /opt/mysql/var/my.cnf
# cd /usr/local/mysql/

5. 初始化

# bin/mysql_install_db --user=mysql

完成编辑此配置档后,记得顺便修改一下 MySQL 数据目录的 ownership:
# chown -R root .
# chown -R mysql var
# chgrp -R mysql .

6. 控制脚本

MySQL提供了一个脚本文件,可以用来方便地控制MySQL守护进程。
# cp support-files/mysql.server /etc/init.d/mysqld
# cd /etc/init.d/
# chmod 755 mysqld

启动:
# /etc/init.d/mysqld start
停止:
# /etc/init.d/mysqld stop

注意,若启用了 InnoDB 存储引擎,那么第一次启动 MySQL 服务器时,速度会比较慢,因为需要分配在配置档中定义的空间、生成相应的数据文件、日志文件等。

7. Security

安全问题在哪里都是很重要的,特别是对于初安装的新系统而言,尤其如此。

MySQL 往往携带有四个缺省用户,分别是 'root'@'localhost', 'root'@'%', ''@'localhost', ''@'%'.
除了第一个本地root,其他三个(任意来源的root,以及两个匿名用户)都应该删除:

mysql> use mysql
mysql> delete from user where user='';
mysql> delete from user where user='root' and host='%';

这唯一保留的用户 root@localhost 的密码默认为空,当然不好。为它加上密码:

# /opt/mysql/bin/mysqladmin -uroot -hlocalhost -P3306 -p password my_pass

指令中的 my_pass 就是设定的密码,注意,不要用单引号把它括起来。