本文实例讲述了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、添加用户
1
|
> useradd -s /sbin/nologin mysql
|
2、建立目录
1
|
> mkdir /data/mysql
|
3、改变目录拥有者和所属者
1
|
> chown -R mysql:mysql /data/mysql
|
4、安装编辑所需的文件
1
|
> yum install gcc gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel
|
(*mysql5.7.5以上版本需要安装boost)
1
|
> yum install boost boost-devel
|
5、解压源码包
1
|
> tar -xf mysql-5.7.16. tar .gz
|
四、编译安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
> 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,重新运行配置)
关于上面参数的解释如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#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
|
编译安装
1
|
> make && make install
|
复制配置文件
1
|
> cp /data/mysql/support-files/my-default .cnf /data/mysql/my .cnf
|
初始化数据库
1
2
3
4
5
6
|
> /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目录拥有者
1
|
> chown -R mysql:mysql /data/mysql
|
五、配置mysql配置文件my.cnf
由于我们在编译安装mysql的时候设置了它的配置文件目录为/data/mysql,所以删掉/etc/my.cnf。
以免受影响。
1
2
|
> rm -rf /etc/my .cnf
> vi /data/mysql/my .cnf
|
配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[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添加开机启动
1
2
3
|
> cp /data/mysql/support-files/mysql .server /etc/init .d /mysqld
> chmod 755 /etc/init .d /mysqld
> chkconfig --add mysqld
|
启动mysql服务
1
|
> service mysqld start
|
为mysql添加环境变量
1
2
|
> echo "export PATH=/data/mysql/bin/:$PATH" >> /etc/profile
> source /etc/profile
|
通过上面保存过的密码登陆mysql来修改root密码
1
2
3
4
|
> mysql -uroot -p
> set password=password( '123456' );
> alter user 'root' @ 'localhost' password expire never;
> flush privileges;
|
希望本文所述对大家MySQL数据库计有所帮助。
原文链接:https://www.cnblogs.com/jkko123/p/6294554.html