Linux下LNMP环境搭建(MySQL5.5.20的编译安装)
Linux下LNMP环境搭建第一步,mysql的安装,从mysql5.5起,mysql源码安装开始使用cmake,此次使用mysql5.5.20版本,基本过程如下:
1.Mysql5.5.20 编译过程
- 安装所需组件:
yum -y install bison gcc-c++ cmake ncurses-devel
- 创建用户:
useradd -s /sbin/nologin -M mysql
- 下载:
wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
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的配置文件拷贝到/etccp 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
加入开机自启动;并启动mysqlchmod 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导致的错误