mysql的安装

来源:互联网 发布:淘宝图库网站 编辑:程序博客网 时间:2024/06/12 04:35

下载代码:

  • http://dev.mysql.com/downloads/

需要注册,下载最新的5.1版本或者更高。

  • 通过Bazaar 下载。

Bazaar是Mysql使用的源代码管理工具,类似于CVS,俺也没用过,有兴趣的自己看文档吧:

  • A Contributor's Guide to Launchpad - Part 1 - Getting Started
  • A Contributor's Guide to Launchpad - Part 2 - Code Management

编译代码:

Mysql的代码编译是通过一些shell脚本来完成的。下载代码并解压后,有一个BUILD目 录,进去看看,里面有各种平台使用的编译脚本,我们要用的是debug版本,以方便我们使用gdb,所以使用的脚本是BUILD/compile- pentium-debug。打开看看,其实很简单,主要加了一个configure选项”--with-debug=full",并使用了 debug_cflags 和debug_configs。脚本内容如下:

BUILD/compile-pentium-debug
<pre>
#! /bin/sh

path=`dirname $0`                          #找到文件所在目录
set -- "$@" --with-debug=full            #将命令行加上"--with-debug=full"
. "$path/SETUP.sh"                          # 导入SETUP.sh的内容,设置一些变量

extra_flags="$pentium_cflags $debug_cflags"  
extra_configs="$pentium_configs $debug_configs"

. "$path/FINISH.sh"                          # 进行config和编译
</pre>

"--with-debug"实际上是autoconf脚本里面定义的,打开configure.in, 查找"with-debug",可以看看里面的参数有哪些不同。

执行脚本吧: $BUILD/compile-pentium-debug --prefix=$HOME/mysql-bin
这里我们执行目标安装目录是$HOME/mysql-bin,你也可以指定其他目录,尽量不要用默认目录,不然有可能和系统里面已经安装好的mysql文件冲突。
等待编译完毕,在sql目录下面可以看到bin/mysqld,恭喜你:-) 这就是mysql的服务器执行文件。而bin/mysql则为客户端程序;
 
安装和运行
 安装: $make && make install
一大堆信息之后你应该可以在~/mysql-bin下面找到很多文件了
$ ls /home/liuli/mysql-bin/
bin include info lib libexec man mysql-test share sql-bench
比较重要的目录:
* bin: 客户端程序和脚本,可以发现比较眼熟的mysql, mysqld_safe, mysqldump, mysqladmin等
* libexec: 服务器程序,包括mysqld(也有可能在bin下)
* share: 配置文件,包括一些实例配置文件比如my-small.cnf以及初次安装运行需要的初始数据库文件比如mysql_system_tables.sql。

Mysql能够运行还需要一些配置文件和数据文件,执行这个命令:
$ ~/mysql-bin/bin/mysql_install_db   --defaults-file=my.cnf --basedir=~/mysql-bin --datadir=~/mysql-bin/var
该命令将运行Mysqld的bootstrap过 程,主要是安装Mysql的系统表,内容可以参照~/mysql-bin/share/mysql目录下的 fill_help_tables.sql,mysql_system_tables.sql和 mysql_system_tables_data.sql。这里我特别强调"--defaults-file"参数,这个参数是用来指定系统运行需要 的"my.cnf"配置文件的。mysql_install_db需要知道系统的配置才能导入上述的三个sql文件,所以必须要制定一个配置文件,我就是 把~/mysql-bin/share/mysql下面的"my-small.cnf"做为配置文件,大家也可以选自己对应的配置文件,如果不指定,会从 /etc/mysqld/my.cnf导入配置。
注意: -defaults-file=my.cnf 选项必须放在第一个参数的位置,否则无效,而且mysql的大部分程序或者脚本都接受这个参数,但也必须放在第一个参数的位置上。

好了,如果没有错误发生,我们就可以运行mysqld啦!
$~/mysql-bin/libexec/mysqld   --defaults-file=my.cnf --basedir=~/mysql-bin --datadir=~/mysql-bin/var --skip-networking

ps一下,能够看到这个进程了吧。
可以用mysql练一下:
$mysql -S /tmp/mysql.sock
$show databases;
应该可以看到:
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
 
错误:
1. Please read "Security" section of the manual to find out how to run mysqld as root!
   根据提示,查了 /opt/redmine-1.2.1-1/mysql/docs/mysql.info的Security部分,发现是因为MySQL为了安全,不希望root用户直接启动mysql。因为拥有FILE'权限的用户会使得MySQL Server使用root帐户创建文件(比如,~root/.bashrc)。
   解决方案:1) 启动项加--user=root强制使用root用户启动
                   2)在my.conf中[mysqld]创建一个名为mysql的用户帐户来专门管理MySQL。使用其帐启动MySQL的方法是在mysqld命令后面加上一个用户选项。
 
原创粉丝点击