Linux LAMP Mysql 部分补全

一、MySQL介绍
MySQL 是最流行的开放源码SQL 数据库管理系统,它是由MySQL AB 公司开发、发布并支持的。MySQL AB 是由多名MySQL 开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。在MySQL 的网站(http://www.mysql.com/)上,给出了关于MySQL 和MySQL的最新信息。

MySQL 可以安装在Windows、Linux、FreeBSD 和Sun Solaris 等系统上。在本课程中,如果不特别说明,凡是涉及到MySQL 的部分都是在Linux 平台下。

二、常见版本
准备安装MySQL 时,你应确定使用哪个版本。MySQL 的开发有几个发布系列,可以选择最适合你要求的一个版本。确定了安装的版本后,便可以选择分发版。有二进制或源码发布格式。在MySQL 开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同
阶段:
· MySQL 5.1 是最新开发的发布系列,是将执行新功能的系列。不久的将来可
以使用Alpha 发行,以便感兴趣的用户进行广泛的测试。
· MySQL 5.0 是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布;没
有增加会影响稳定性的新功能。
· MySQL 4.0 和3.23 是旧的稳定(产品质量)发布系列。该版本不再使用,新的发布只用来修复特别严重的漏洞(以前的安全问题)。
通常, 如果你是第一次开始使用MySQL 或想要将它移植到一些还没有二进制分发版的系统上,我们推荐使用最终的稳定版本。目前是MySQL 5.0。对于早期版本和当前版本来讲,主要是内部机制和SQL 方面的扩展。在本课程中介绍的方法和内容,对3.23 之后的版本通用。
MySQL 的命名机制使用3 个数字和一个后缀组成的版本号。例如
mysql-5.0.9-beta 的版本号这样解释:
·第1 个数字(5)是主版本号,描述了文件格式。所有版本5 的发行都有相同的文件格式。
·第2 个数字(0)是发行级别。主版本号和发行级别组合到一起便构成了发行序列号。
·第3 个数字(9)是在此发行系列的版本号,随每个新分发版递增。通常你需要已经选择的发行(release)的最新版本(版本)。后缀显示发行的稳定性级别。通过一系列后缀显示如何改进稳定性。可能的后
缀有:
· alpha 表明发行包含大量未被彻底测试的新代码。已知的缺陷应该在新闻小节被记录。请参见附录D:MySQL 变更史。在大多数alpha 版本中也有新的命令和扩展。alpha 版本也可能有主要代码更改等开发。但我们在发布前一定对其进行测试。
· beta 意味着该版本功能是完整的,并且所有的新代码被测试了,没有增加重要的新特征,应该没有已知的缺陷。当alpha 版本至少一个月没有出现报导的致命漏洞,并且没有计划增加导致已经实施的功能不稳定的新功能时,版本则从alpha版变为beta 版。在以后的beta 版、发布版或产品发布中,所有API、外部可视结构和SQL 命令列均不再更改。
· rc 是发布代表;是一个发行了一段时间的beta 版本,看起来应该运行正常。只增加了很小的修复。(发布代表即以前所称的gamma 版)
· 如果没有后缀,这意味着该版本已经在很多地方运行一段时间了,而且没有非平台特定的缺陷报告。只增加了关键漏洞修复修复。这就是我们称为一个产品(稳定)或“通用”版本的东西。

三、安装及调试

1.下载软件:
创建存放软件的目录:
mkdir /backup/software (可以存放在任何自己想存放的目录)
到http://dev.mysql.com/Downloads/ 下载最新稳定版的源代码, 放到
/backup/software。
本文中下载的是:mysql-5.0.28.tar.gz

2.解压软件:
tar -zxvf mysql-5.0.25.tar.gz

3.进入源代码目录:
cd mysql-5.0.25

4.创建MySQL 的运行用户
groupadd mysql
adduser -g mysql mysql

5.配置编译选项:
./configure \
--prefix=/opt/mysql \
--with-unix-socket-path=/opt/mysql/tmp/mysql.sock \
--localstatedir=/opt/mysql/database/mysql_data \
--enable-assembler \
--with-mysqld-ldflags=-all-static \
--with-mysqld-user=mysql
编译选项说明:
--prefix=/opt/mysql:将所有文件安装到/opt/mysql 目录下
--with-unix-socket-path=/opt/mysql/tmp/mysql.sock : 指定MySQL 的
Unix socket 文件存放的目录。
--localstatedir=/opt/mysql/database/mysql_data 指定mysql 的日志存放位置和数据库位置。
--enable-assembler:允许使用汇编模式(优化性能)
--with-mysqld-ldflags=-all-static:服务器使用静态库(优化性能)
--with-mysqld-user=mysql:指定MySQL 的运行用户。
其它常用编译选项说明:
--without-server:仅编译安装客户端工具。
--with-client-ldflags=-all-static:客户端使用静态库。
--with-charset=CHARSET:指定MySQL 使用的默认字符集。CHARSET 可以是:
big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7 或win1251ukr。如果不指定,默认使用latin1。

如果你需要其它选项, 请使用./configure --help 查看或参看文档
http://dev.mysql.com/doc/mysql/en/configure-options.html

7.编译:
make

8.安装:
make install

9.拷贝MySQL 的配置文件到/etc 目录下
cp support-files/my-medium.cnf /etc/my.cnf
初始化数据库:
cd /opt/mysql
mkdir –p /opt/mysql/database/mysql_data
bin/mysql_install_db --user=mysql (生成mysql.sock)
chown -R root /opt/mysql(将软件的安装目录拥有者改为root 用户)
chown -R mysql /opt/mysql/database/mysql_data(将存放数据库的目录拥有者改为
mysql 用户)
chgrp -R mysql /opt/mysql(将软件的安装目录属组改为mysql 组)

10.启动数据库服务:
/opt/mysql/bin/mysqld_safe --user=mysql &

11.设置环境变量:
如果要使用本地的客户端工具,并且不想每次都输入完整路径,就需要设置
PATH 变量。
export PATH=$PATH:/opt/mysql/bin

12.测试:
执行/opt/mysql/bin/mysql,出现如下提示符
[root@vfast mysql]# /opt/mysql/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.28-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
执行show databases,显示当前系统内的数据库,出现如下提示:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.01 sec)

13.启动脚本(使系统启动时自动启动MySQL 数据库服务):
在Linux 系统下:
在/etc/rc.local 文件内添加下面的行:
/opt/mysql/bin/mysqld_safe --user=mysql&

14.MySQL 的启动和停止脚本
如果不想使用13 步中的方法来在系统启动时自动启动MySQL 服务,也可以使
用MySQL 提供的脚本:
[root@vfast mysql-5.0.28]# cp support-files/mysql.server /etc/init.d/MySQL
[root@vfast mysql-5.0.28]# chmod 755 /etc/init.d/MySQL
[root@vfast mysql-5.0.28]# chkconfig --add MySQL