centos7下源码安装mysql5.7.16

前端之家收集整理的这篇文章主要介绍了centos7下源码安装mysql5.7.16前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一、下载源码包
下载MysqL源码包
http://mirrors.sohu.com/MysqL/MysqL-5.7/MysqL-5.7.16.tar.gz
二、安装约定:
用户名MysqL
安装目录:/data/MysqL
数据库目录:/data/MysqL/data
三、安装准备
1、添加用户
> useradd -s /sbin/nologin MysqL
2、建立目录
> mkdir /data/MysqL
3、改变目录拥有者和所属者
> chown -R MysqL:MysqL /data/MysqL
4、安装编辑所需的文件
> yum install gcc gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel
(*MysqL5.7.5以上版本需要安装boost)
> yum install boost boost-devel
5、解压源码包
> tar -xf MysqL-5.7.16.tar.gz
四、编译安装
> cd /data/MysqL-5.7.16
> cmake \
-DMysqL_USER=MysqL \
-DCMAKE_INSTALL_PREFIX=/data/MysqL \
-DMysqL_DATADIR=/data/MysqL/data \
-DSYSCONFDIR=/data/MysqL \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DINSTALL_PLUGINDIR=/data/MysqL/plugin \
-DWITH_READLINE=1 \
-DMysqL_UNIX_ADDR=/data/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 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
(*注意,如果出错,需删除CMakeCache.txt,重新运行配置)

关于上面参数的解释如下:
#MysqL用户名
-DMysqL_USER=MysqL
#安装路径
-DCMAKE_INSTALL_PREFIX=/data/MysqL
#数据文件存放位置
-DMysqL_DATADIR=/data/MysqL/data
#my.cnf路径
-DSYSCONFDIR=/data/MysqL
#支持MyIASM引擎
-DWITH_MYISAM_STORAGE_ENGINE=1
#支持InnoDB引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
#支持Memory引擎
-DWITH_MEMORY_STORAGE_ENGINE=1
#插件文件及配置路径
-DINSTALL_PLUGINDIR=/data/MysqL/plugin
#快捷键功能(我没用过)
-DWITH_READLINE=1
#连接数据库socket路径
-DMysqL_UNIX_ADDR=/data/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
#会自动下载boost
-DDOWNLOAD_BOOST=1
#指定boost目录
-DWITH_BOOST=/usr/local/boost
编译安装
> make && make install
复制配置文件
> cp /data/MysqL/support-files/my-default.cnf /data/MysqL/my.cnf
初始化数据库
> /data/MysqL/bin/MysqLd \
--defaults-file=/data/MysqL/my.cnf \
--initialize \
--user=MysqL \
--basedir=/data/MysqL \
--datadir=/data/MysqL/data \
如果出现如下信息:
unknown variable 'defaults-file=/data/MysqL/my.cnf'
请保证--defaults-file配置选项在最前面。

如果出现如下信息:
[ERROR] --initialize specified but the data directory has files in it. Aborting.
请保证的你的datadir目录下为空,如果有文件删除

MysqL5.7版本通过--initialize安装会随机生成root密码,请注意保存。
如果希望生成空密码请使用--initialize-insecure配置。

修改MysqL目录拥有者
> chown -R MysqL:MysqL /data/MysqL

五、配置MysqL配置文件my.cnf
由于我们在编译安装MysqL的时候设置了它的配置文件目录为/data/MysqL,所以删掉/etc/my.cnf。
以免受影响。
> rm -rf /etc/my.cnf
> vi /data/MysqL/my.cnf
配置如下:
[client]
default-character-set = utf8
port = 3306
socket = /data/MysqL/MysqL.sock
[MysqL]
default-character-set = utf8
[MysqLd]
skip-name-resolve
basedir = /data/MysqL
datadir = /data/MysqL/data
port = 3306
server_id = 10
socket = /data/MysqL/MysqL.sock
character-set-server = utf8
max_connections = 200
default-storage-engine = INNODB
log-bin=MysqL-bin
MysqL添加开机启动
> cp /data/MysqL/support-files/MysqL.server /etc/init.d/MysqLd
> chmod 755 /etc/init.d/MysqLd
> chkconfig --add MysqLd
启动MysqL服务
> service MysqLd start
MysqL添加环境变量
> echo "export PATH=/data/MysqL/bin/:$PATH" >> /etc/profile
> source /etc/profile
通过上面保存过的密码登陆MysqL修改root密码
> MysqL -uroot -p
> set password=password('123456');
> alter user 'root'@'localhost' password expire never;
> flush privileges;

 

猜你在找的MySQL相关文章