环境介绍
cat /etc/redhat-release
uname -a
安装 lrzsz 软件,这个软件和编译安装 mysql 无关,只是为了方便后面通过 xshell 拖拽其他软件
yum -y install lrzsz
安装 mysql 需要的各种依赖包
yum -y install ncurses-devel libaio-devel
创建 /home/yuci/tools 目录,用于存放各种软件
mkdir -p /home/yuci/tools
安装 Cmake 软件,mysql 就是通过它编译安装的
cd /home/yuci/tools/
tar zxf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure && gmake && gmake install
# 通过 echo $? 检查是否安装成功,返回值为 0,则正确安装。
为 mysql 创建一个同名的伪用户,并检查
useradd -s /sbin/nologin -M mysql
id mysql
编译安装 MySQL
# 在测试安装 mysql 时发现一个问题,通过 open live writer 复制参数编译失败,但是通过网页却编译成功,我觉得肯定时复制粘贴时“-”出了问题。我的参数肯定是没有错的,如果编译过程中出现报错就手工敲一遍,准保没问题。
tar zxf mysql-5.5.23
cd mysql-5.5.23
####################编译安装参数#########################
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.23 \
-DMYSQL_DATADIR=/application/mysql-5.5.23/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.23/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gks,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DBBUG=0
########################################################
make && make install
# 通过 echo $? 检查是否安装成功,返回值为 0,则正确安装。
给 mysql 创建一个软连接,方便后面的操作
ln -s /application/mysql-5.5.23/ /application/mysql
初始化 mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
给 mysql 目录授权
chown -R mysql:mysql /application/mysql
拷贝 MySQL 的配置文件。my.cnf
cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
y
mysqld_safe 是 mysql 的启动脚本,默认的 mysql 安装位置是 /usr/local/mysql ,但是我们的安装路径是 /application/mysql,所以需要通过 sed 更改一下
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysql
尝试启动 mysql 并放入后台执行
/application/mysql/bin/mysqld_safe &
通过 lsof 命令,检查 3306 端口是否启动
lsof –i :3306
通过 netstat 命令,再次确认 mysql 已经正常运行
netstat –tlunp
现在 mysql 启动了,但是还需要配置环境变量,才能登陆 mysql
#编辑 /etc/profile 文件,将下面的变量命令写在文件的最后一行即可,然后执行 source 使其生效
vim /etc/profile
PATH="/application/mysql/bin:$PATH"
source /etc/profile
现在尝试在命令行下登录 mysql
mysql
拷贝 mysql 的启动脚本,修改里面的安装路径,添加执行权限,方便 mysql 的重启
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's#/usr/local/mysql#/application/mysql#g' /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
通过 killall 命令,将 mysql 进程杀死,直到出现 no process killed
killall mysqld
接下来通过刚才拷贝的脚本启动 mysql 服务
/etc/init.d/mysqld start
在通过 lsof,netstat 命令查看 mysql 是否启动
lsof –i :3306
netstat –tlunp
最后给 mysql 管理员设定一个密码
mysqladmin –uroot password “123456”
正常登录 mysql,编译安装完成