有个问题,
为什么mysql安装的文件不放在同一个目录下?这么多目录,目的是什么呢?
可能的一个简单的答案:为了方便,符合存放标准,比如
/usr/bin | 客户端程序和脚本 |
方在/usr/bin下面,这样不用设置环境变量就可以直接使用这些脚本命令了。(大部分系统已经将此路径设置好了)
=================================================================
/usr/bin | 客户端程序和脚本 |
/usr/sbin | mysqld 服务器 |
/var/lib/mysql | 日志文件,数据库 |
/usr/share/doc/packages | 文档 |
/usr/include/mysql | 包含( 头) 文件 |
/usr/lib/mysql | 库 |
/usr/share/mysql | 错误消息和字符集文件 |
/usr/share/sql-bench | 基准程序 |
详细的安装过程 适用于5。0版本以上
你必须执行的安装MySQL 源码分发版的基本命令是:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION .tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
以下是安装MySQL 源码分发版的更详细的描述: 1. 为 mysqld 增加一个登录用户和组:
2. shell> groupadd mysql
3. shell> useradd -g mysql mysql
这些命令将增加MySQL 组和 MySQL 用户。不同版本的Unix 中,useradd 和groupadd 的语法可能会稍有不同。还可以称为adduser 和addgroup 。 你可能会将这些用户和组命名为mysql 之外的名称。如果是这样,在下面的步骤中替换为相应的名称。 4. 挑选一个你想解开分发包的目录,进入该目录。 5. 从2.1.3节,“怎样获得MySQL” 中列出的站点之一获得一个分发文件。 6. 在当前目录下解包分发版:
7. shell> gunzip < /path/to/mysql-VERSION .tar.gz | tar xvf -
该命令创建mysql-VERSION 目录。 使用GNU tar ,则不再需要gunzip 。你可以用下面的命令来解包和提取分发:
shell> tar zxvf /path/to/mysql-VERSION-OS .tar.gz
8. 进入解包分发版的顶级目录:
9. shell> cd mysql-VERSION
请注意目前必须从顶级目录配置和构建MySQL 。你不能在其它目录中构建。 10. 配置发布版并且编译:
11. shell> ./configure --prefix=/usr/local/mysql
12. shell> make
当你运行configure 时,你可能想要指定一些选项,运行./configure --help 得到一个选项列表。2.8.2节,“典型配置选项” 讨论一些很有用的选项。 如果configure 失败,你将向MySQL 邮件目录发送包含你认为能帮你解决该问题的包含“config.log ”中所有行的邮件,也要包括configure 的最后几行输出。用mysqlbug 脚本邮寄错误报告。请参见1.7.1.3节,“如何通报缺陷和问题” 。 如果编译失败,参见2.8.4节,“处理MySQL编译问题” 寻求帮助。 13. 安装分发版:
14. shell> make install
如果你想要设置一个选项文件,使用support-files 目录中的一个作为模板。例如:
shell> cp support-files/my-medium.cnf /etc/my.cnf
可能你需要用root 用户 运行这些命令。 如果想要配置为支持InnoDB 表,应当编辑/etc/my.cnf 文件,去掉innodb_... 开始选项行前面的# 符,并将选项值改为你想要的。请参见4.3.2节,“使用选项文件” 和15.2.3节,“InnoDB配置” 。 15. 进入安装目录:
16. shell> cd /usr/local/mysql
17. 如果还没有安装的MySQL ,必须创建MySQL 授权表:
18. shell> bin/mysql_install_db --user=mysql
如果用root 运行命令,应当使用--user 选项。选项的值应与你在第一步为运行服务器所创建的登录账户相同。如果用该用户登录来运行命令,可以省略--user 选项。 用mysql_install_db 创建MySQL 授权表后,需要手动重新启动服务器 19. 将程序二进制的所有权改为root , 数据目录的所有权改为你运行mysqld 的用户。如果位于安装目录( /usr/local/mysql ) 下,命令应为:
20. shell> chown -R root .
21. shell> chown -R mysql var
22. shell> chgrp -R mysql .
第一个命令将文件的所有属性改为root 用户。第二个命令将数据目录的所有属性改为mysql 用户。第三个命令将组属性改为mysql 组。 23. 如果你喜欢在引导机器时自动启动MySQL ,你可以拷贝support-files/mysql.server 文件到你系统有启动文件的地方。更多的信息可以在support-files/mysql.server 脚本中和2.9.2.2节,“自动启动和停止MySQL” 中找到。 24. 如果安装了DBI 和DBD::mysql Perl 模块,可以使用bin/mysql_setpermission 脚本增加新账户。关于说明,参见2.13节,“Perl安装注意事项” 。 在所有东西被安装以后,你应当使用该命令初始化并且测试你的分发版:
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
如果这个命令提示mysqld daemon ended 并马上失败,那么你能在数据目录中的文件“hostname'.err ”找到一些信息。 关于mysqld_safe 的详细信息参见5.1.3节,“mysqld_safe:MySQL服务器启动脚本” 。