最近在CentOS 7中源码安装MySQL 5.7.16,发现MySQL5.7.6+以后的安装方式真的与以前版本的MySQL安装方式大大的不同呀。不自己安装一把,下面这篇文章是通过自己的安装过程总结的一篇安装教程,有需要的朋友们可以参考借鉴,下面来一起看看吧
配置说明
Linux版本:Centos7
MySQL版本:MySQL5.7.16
该文档适用于MySQL版本>=5.7.6
一、首先检查你所用的Linux下有没有安装过mysql,有没有卸载干净,卸载CentOS7默认携带的mariadb包
1 #检查mariadb安装包
2 [root@wing ~]#rpm -qa | grep -i mysql
3 [root@wing ~]#rpm -qa | grep -i mariadb
4 mariadb-libs-5.5.50-1.el7_2.x86_645 #卸载查找到的mariadb安装包
6 [root@wing ~]#rpm -e mariadb-libs-5.5.50-1.el7_2.x86_647 #注:如上命令删除不成功,有别的软件依赖无法删除时,如下操作:
8 [root@wing ~]#yum remove mariadb-libs-5.5.50-1.el7_2.x86_64
View Code
二、获得MySQL所有版本(5.0.15-latest)地址,并下载源文件MySQL5.7 需要安装 boost库文件
2. 创建并进入源码存放目录:mkdir /home/source
3. 下载源码并清除 centos 原有my.cnf配置文件:
1 wget https://downloads.mysql.com/archives/get/file/mysql-5.7.16.tar.gz2 mv /etc/my.cnf /etc/mysql.cof.back
三、安装编译软件和依赖
#首先更新系统软件
# yum update
四、创建MySQL安装目录
五、创建mysql用户和用户组
六、创建MySQL相关目录
| 目录 | 含义 | 配置参数 |
| :——— | ————————————– | —————————————- |
| bin_log | 二进制日志目录 | log_bin_basename
log_bin_index |
| mydata | 数据文件目录 | datadir |
| innodb_log | InnoDB重做日志目录 | innodb_log_group_home_dir |
| innodb_ts | InnoDB共享表空间目录 | innodb_data_home_dir |
| log | 日志文件目录(error log+general log+slow log) | log_error
general_log_file
slow_query_log_file |
| relay_log | InnoDB中继日志目录 | relay_log_basename
relay_log_index |
| tmpdir | 临时文件目录 | tmpdir |
| undo_log | InnoDB回滚日志目录 | innodb_undo_directory |
七、创建的目录的所属用户与所属组为mysql:mysql
注1 chown -R mysql:mysql /home/mysql/data2 chown -R mysql:mysql /usr/local/web/mysql
八,解压MySQL源码包
九,编译安装MySQL5.7.6+
注:如果编译出现错误,请先删除CMakeCache.txt后,再重新编译:
rm -rf CMakeCache.txt
如果安装报错:tar -zxvf boost_1_59_0.tar.gz 无法解压 请下载可用文件:
1 wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
同时cmake 选项:
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
改成:
-DWITH_BOOST=/usr/local/boost/boost_1_59_0.tar.gz
重新Cmake。
如果出现下面的提示就表示成功生成了编译环境:
-- Configuring done
-- Generating done
1 #cmake参数解释如下:
2
3 DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径4
5 DMYSQL_DATADIR=/data/mysql:数据文件存放位置6
7 DSYSCONFDIR=/etc:my.cnf路径8
9 DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎10
11 DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎12
13 DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:连接数据库socket路径14
15 DMYSQL_TCP_PORT=3306:端口16
17 DENABLED_LOCAL_INFILE=1:允许从本地导入数据18
19 DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区20
21 DEXTRA_CHARSETS=all:安装所有的字符集22
23 DDEFAULT_CHARSET=utf8:默认字符24
25 DWITH_EMBEDDED_SERVER=1:嵌入式服务器
十,设置开机自启动:
十一,初始化MySQL:
初始化注意事项:
1.如果出现如下信息:unknown variable'defaults-file=/data/mysql/my.cnf',请保证--defaults-file配置选项在最前面。
2.初始化最后一行是root用户密码(root@localhost: ,5j1Qj_LLAek)如图:
十二,启动MySQL服务:
1. 添加MySQL环境变量
2. 启动MySQL
mysql启动报错:Starting MySQL... ERROR! The server quit without updating PID file参考:http://blog.51cto.com/732233048/1636409,启动不成功,修改my.cnf后需要重新初始化
十三,登陆MySQL并修改密码
十四,关闭MySQL:
十五,启动MySQL远程访问:
1. 防火墙开启3306端口:firewall-cmd --add-port=8001/tcp --permanent(永久生效)
十六,MySQL5.7 和以前版本不同点:
1.初始化工具不同
MySQL5.6.xx使用的是mysql_install_db,MySQL5.7.6+官方推荐使用mysqld –initialize。
2.初始化数据库不同
MySQL5.6.xx初始化之后存在mysql,information_schema,performance_schema,test四个数据库,MySQL5.7.6+初始化之后存在mysql,information_schema,performance_schema,sys四个数据库。
3.初始化用户不同
MySQL5.6.xx初始化之后存在root@localhost,root@'::1',root@'hostname',''@'localhost',''@'hostname'五个用户,MySQL5.7.6+初始化之后存在mysql.sys,root@localhost用户
4.初始化root密码
MySQL5.6.xx初始化之后root用户密码为空,MySQL5.7.6+初始化之后会为root@localhost用户生成随机密码。
十七,MySQL安装常用参考文档: