centos6.7环境上源码安装mysql5.6
本文是继上篇文章centos6.7环境上源码安装nginx1.12.1,继续安装mysql的说明,因此环境同上,再次就不在赘述。
一,下载mysql5.6的源码包:wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz
注意:从mysql5.5开始,不再使用make进行编译,而是采用cmake进行编译。所以没有安装cmake的还得安装cmake
二,安装cmake:yum install cmake
三,安装mysql依赖:yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake libaio libaio-devel autoconf bzr bison libtool
四,解压到指定目录下,进行编译安装(/opt/app为本人自己安装软件的目录)
tar -zxvf mysql-5.6.35.tar.gz /opt/app/
在/opt/app/下创建一个目录:mkdir mysql_5_6_35
下载boost,并且用make安装
解压后使用cmake编译,注意cmake编译需要带参数,命令如下:
cmake . \
-DCMAKE_INSTALL_PREFIX=/opt/app/mysql_5_6_35 \
-DMYSQL_DATADIR=/opt/app/mysql_5_6_35/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/opt/src/boost_1_59_0
上面命令中 \ 表示换行,注意每一行必须空一个,不然执行时这些语句就都连一起,就会出现语法错误
DCMAKE_INSTALL_PREFIX参数是设置mysql安装的路径
DMYSQL_DATADIR参数是设置mysql数据库文件存放路径
DMYSQL_UNIX_ADDR参数设置mysql连接用socket文件存放路径
编译安装:make && make install
五,添加系统用户和组
添加mysql组:groupadd mysql
添加mysql用户:useradd -r -g mysql -s /bin/false mysql -r 设置mysql用户为系统账号,不可以用于登录,-g 设 置mysql的所属组为mysql
设置mysql目录所属者和组:chown -R mysql:mysql /opt/app/mysql_5_6_35
复制mysql中配置文件导/etc下:cp support-files/my-default.cnf /etc/my.cnf
初始化权限表:scripts/mysql_install_db --user=mysql
scripts/mysql_install_db --basedir=/opt/app/mysql_5_6_35 --datadir=/opt/app/mysql_5_6_35/data --user=mysql
六,设置service管理service
mysql本身有支持service的脚本,只需要将该脚本复制到/etc/init.d/目录下即可
cp support-files/mysql.server /etc/init.d/mysql
到此mysql就安装好了,可以使用ps aux | grep mysql 命令查看,是否已经了mysql的进程了
七,设置mysq root账户密码:
use mysql;
update user set password = Password('101010') where User = 'root';
flush privileges;
exit;
添加新的用户
grant all privileges on *.* to 'mv_mysql'@'%' identified by '密码';