Linux下LNMP环境搭建(MySQL5.5.20的编译安装)

Linux下LNMP环境搭建第一步,mysql的安装,从mysql5.5起,mysql源码安装开始使用cmake,此次使用mysql5.5.20版本,基本过程如下:

1.Mysql5.5.20 编译过程

  1. 安装所需组件:yum -y install bison gcc-c++ cmake ncurses-devel
  2. 创建用户:useradd -s /sbin/nologin -M mysql
  3. 下载:wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
  4. tar zxvf mysql-5.5.20.tar.gz
    cd mysql-5.5.20
    rm CMakeCache.txt //首次编译无该文件,跳过
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DWITH_DEBUG=0
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \ # 安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data   \ # 数据文件存放位置
-DSYSCONFDIR=/etc  \ # my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1  \ #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1  \ # 支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1  \#支持Memory引擎
-DMYSQL_TCP_PORT=3306   \ # 数据文件存放位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock   \ # 连接数据库socket路径
-DMYSQL_TCP_PORT=3306 \ #端口
-DENABLED_LOCAL_INFILE=1 \#允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 \#安装支持数据库分区
-DEXTRA_CHARSETS=all \#安装所有的字符集
-DDEFAULT_CHARSET=utf8 \#默认字符
-DDEFAULT_COLLATION=utf8_general_ci \#设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)
-DMYSQL_USER=mysql   \ # 指定mysql用户(默认为mysql)
-DWITH_DEBUG=0  \ # 禁用debug(默认为禁用)

make && make install

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

初始化数据库
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

chown -R root .
chown -R mysql ./data

将mysql的配置文件拷贝到/etc
cp support-files/my-medium.cnf /etc/my.cnf

修改my.cnf配置
在[mysqld]下添加:
user=mysql
datadir=/usr/local/mysql/data

配置启动脚本
cp /usr/local/mysql/support-files/mysqld.server /etc/init.d/mysqld

加入开机自启动;并启动mysql
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
service mysqld start

添加mysql/bin到path中,例如添加到 .bash_profile ,添加
export mysqlhome=/usr/local/mysql
PATH=$PATH:$HOME/bin:$mysqlhome/bin
source .bash_profile 使配置立即生效

修改root密码
/usr/local/mysql/bin/mysqladmin -uroot password
service mysql restart
/usr/local/mysql/bin/mysql -uroot -p

问题:
手动启动时出现 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。

启动修改为:/usr/local/mysql/bin/mysqld --user=mysql

起初拷贝support-files/mysqld_multi.server多实例导致的错误。
user=mysql
datadir...
添加到mysql而不是mysqld导致的错误

Tags: Linux, mysql

添加新评论