日期:2014-05-16  浏览次数:20783 次

ubuntu 源码安装mysql

ubuntu上又装了一遍mysql,重新写一遍

?

下载mysql源码包,mysql-5.5.21.tar.gz?

?

下载时注意别选成其他的linux安装包,不然编译肯定报错。选择平台的下拉列表里选择 Source Code,Select Platform: Source Code ,下载 Generic Linux (Architecture Independent), Compressed TAR Archive

?

以下是过程

?

groupadd mysql //增加用户组

?

useradd -g mysql mysql -s /usr/sbin/nologin

?

mkdir /mysql //mysql数据目录

?

mkdir /usr/local/mysql //安装目录

?

tar -zxvf mysql-5.5.21.tar.gz

?

cd mysql-5.5.21

?

//cmake编译代码 未安装cmake 可以用以下命令 sudo apt-get install cmake,在/usr/bin里能看到cmake,或者下载cmake源码包?cmake-2.8.7.tar.gz,解压后进入解压目录运行./configure ?make && make install就搞定

?

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1

(//以上参数分别为安装目录、数据目录、字符集、扩展的字符集、MYISAM/INNODB存储、是否允许执行本地load data infile,附参数说明

  • CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
  • DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
  • DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
  • ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
  • WITH_COMMENT:指定编译备注信息
  • WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
  • WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
  • SYSCONFDIR:初始化参数文件目录
  • MYSQL_DATADIR:数据文件目录
  • MYSQL_TCP_PORT:服务端口号,默认3306
  • MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

?

?

make

?

make install

?

chown -R mysql:mysql /usr/local/mysql

?

chown -R mysql:mysql /mysql

?

安装完后,复制配置文件,启动前初始化?

?

cp suport-files/xxx.cnf ?my.cnf (mysql配置文件,可以选择my-medium.cnf)

?

./script/mysql_install_db ?--defaults-file=/usr/local/mysql/my.cnf ?--user=mysql --datadir=/mysql

?

//defaults-file表示指定默认的配置文件,如果不指定,系统默认的优先级是依次使用/etc/my.cnf,/etc/mysql/my.cnf,mysql安装目录下my.cnf作为mysql的配置文件,那之前make的那些参数就白设置了。。。

?

//如果不指定 可以通过cp my.cnf /etc/my.cnf 将etc目录下得配置文件覆盖

?

启动mysql

?

方法一:

?

sudo bin/mysqld_safe --user=mysql &

?

方法二

?

cp suport-files/mysql.server /etc/init.d/mysql

?

sudo /etc/init.d/mysql start

?

?

转注明源 http://asyty.iteye.com/blog/1442503