mysql-5.6.17编译安装和常见问题
以前用的是MySQL的5.1版本,且使用的是免编译的包,安装简单。最近换了5.6版本的MySQL,安装过程出现了不少问题。
1. 卸载原来版本的MySQL
检查已经安装的MySQL:
# rpm -qa |grep mysql
检查到mysql以后卸载:
# rpm -e mysql //卸载mysql,加--nodeps可以强制卸载
2. 下载MySQL
# cd /usr/local/mysql
# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz
# tar zxvf mysql-5.6.17.tar.gz
# mv ./mysql-5.6.17 /usr/local/mysql
# cd /usr/local/mysql
3. 安装依赖包
# yum -y install cmake gcc-c++ cmake bison-devel ncurses-devel
4. 编译
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //basedir的目录,刚刚解压到这个目录
-DMYSQL_DATADIR=/data/mysql/\ //数据存放datadir目录,自定义
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/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
cmake时间很长,结束后执行下面命令来查看返回值,如果是0说明没有问题。
# echo $?
执行编译和安装:
# make && make install
5. 准备工作
mysql用户在以前安装的时候已经建立,目录权限需要给mysql用户:
# chown -R /usr/local/mysql
# chown -R /data/mysql
mysql.sock因为权限问题,会导致启动MySQL失败,先将权限给定:
# chmod -R 777 /var/lib/mysql
6. 初始化和配置文件的修改
./scripts/mysql_install_db添加x权限
# chmod a+x ./scripts/mysal_install_db
初始化:
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
配置文件的复制和配置:
# cp ./support-files/mysql.server /etc/init.d/mysqld
# cp my.cnf /etc/my.cnf //覆盖原来的my.cnf文件
# vim /etc/init.d/mysqld
basedir=/usr/local/mysql //补充basedir
datadir=/data/mysql //补充datadir
启动mysqld,将mysqld加入开机启动列表:
# chkconfig --add mysqld
# chkconfig mysqld on
# /etc/init.d/mysqld start //启动mysqld
# ps aux |grep mysqld //查看mysqld的启动进程