centos7源码安装mysql5.7.19
centos7源码包安装mysql5.7
5.7.20安装方法和5.7.19的一样。
1、安装前准备
清空环境、安装相应的软件包
1>关闭防火墙和SELinux
2>配置yum源(阿里云,centos163等等都行)
#yum -y install cmake
ncurses-devel--如果不安装这两个,后面编译提示错误再安装也可以。
如果系统版本过低需要安装更高版本的cmake才可以完成编译,下载之后
#wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
#tar -xf boost_1_59_0.tar.gz
-C /usr/src/--解压存放的目录随便,但是在后面cmake的时候需要指定这个目录
如果服务器无法联网,则可以在我的百度云下载相关的软件然后发到服务器上面。连接永久有效。
希望完成编译安装的朋友能给个好评。
直接下载这个安装包解压即可,里面包括boost压缩包,解压后有一个mysql5.7.20的文件夹和一个boost的安装包,因为此文是编译安装20的时候更新,所以上传的是20的 安装包。其实步骤是一模一样的。
链接:https://pan.baidu.com/s/1i5u3fzZ 密码:ny7e
2、安装过程(源码包安装)
1》创建相应的用户组和数据目录并且授权(我的环境安装如下)
#useradd mysql--创建mysql用户,如果已经有了就不需要再创建
#mkdir /mysql/etc/
-p--创建安装目录和配置文件存放的目录
2》下载源码包并解压软件到/usr/src(随便一个目录也行)
进入mysql官网:https://dev.mysql.com/
选择Downloads>>MySQL
Community Edition (GPL)>>Community (GPL)Downloads >>MySQL Community Server (GPL)>>download
操作系统:SourceCode
操作系统版本:Generic_Linux
下载:mysql-5.7.19.tar.gz(或者其他版本)
#tar -xf mysql-5.7.19.tar.gz
-C /usr/src/--解压安装包到/usr/src/目录下面
如果mysql下面没有my.cnf文件则创建/mysql/etc/文件来存放my.cnf文件,也可以直接在/mysql目录下面创建my.cnf配置文件
3》创建编译脚本
#cd
/usr/src/mysql-5.7.19/
#vim
cmake.sh
#!/bin/bash
cmake. \
-DCMAKE_INSTALL_PREFIX=/mysql \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DSYSCONFDIR=/mysql/etc \
-DMYSQL_UNIX_ADDR=/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DDOWNLOAD_BOOST=1
\
-DWITH_BOOST=/usr/src
\--如果不加这两行则下面会报错,你再添加也行,这是boost存放的路径
-DMYSQL_USER=mysql
执行脚本:
#bash cmake.sh
可能出现的错误1:
CMakeError at cmake/boost.cmake:81
(MESSAGE):
Youcan download it
with-DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
ThisCMake script
will look for boost in <directory>. If it is notthere,
..........
..........
CallStack (most recent
call first):
cmake/boost.cmake:238(COULD_NOT_FIND_BOOST)
CMakeLists.txt:491(INCLUDE)
--Configuring incomplete,
errors occurred!
Seealso "/usr/src/mysql-5.7.19/CMakeFiles/CMakeOutput.log".
Seealso "/usr/src/mysql-5.7.19/CmakeFiles/CmakeError.log".
原因:没有找到boost路径,mysql5.6之后需要添加下面两个参数,现在安装5.7,则需要下载boost,然后解压到相应的路径。
解决:在脚本里面添加下面两行
-DDOWNLOAD_BOOST=1\
-DWITH_BOOST=/usr/src\
下载解压boost到/usr/src/(第1步安装前准备有说,可以回去看)
可能出现的错误2:找不到cmake的命令。
原因:没安装cmake软件。
解决:编译安装
4)安装完成之后,需要指定编译器cmake的命令位置。即:
--指定cmake的位置
cmake错误之后需要删除已经生存的缓存文件:
#rm -rf CmakeCache.txt
#bash cmake.sh--重新执行脚本
提示下面的信息则算安装成功:
CMakeWarning:
Manually-specifiedvariables were not used by
the project:
MYSQL_USER
--Build files have been written to: /usr/src/mysql-5.7.19
4》安装mysql,先编译,后安装
#make--编译时间会很长
#make install
3、安装后配置
1>手动编写my.cnf配置文件
#vim /mysql/my.cnf
[mysqld]
port=3306
dasedir=/mysql
datadir=/mysql/data
socket=/mysql/mysql.sock
user=mysql
[client]
socket=/mysql/mysql.sock----告诉client端登录进来去哪里找sock文件
2>创建相关用户及目录,并修改权限
3>初始化数据库
#./bin/mysqld
--initialize --user=mysql –datadir=/mysql/data
如果直接用上面这条命令将不会报下面的错误。5.6初始化命令为./bin/mysql_install_db--user=mysql,5.7的mysql_install_db文件在bin目录下,但是5.7将不再使用这个文件初始化数据库,而是使用mysqld–initialize代替。
成功之后会提示下面的信息:其中hcs5iEKHnq!I为数据库初始化密码。
.................
017-09-27T01:39:09.384918Z0
[Warning] Gtid table is not ready to be used. Table'mysql.gtid_executed' cannot be opened.
2017-09-27T01:39:09.405254Z1
[Note] A temporary password is generated for root@localhost:hcs5iEKHnq!I
可能出现的问题1:
[ERROR]
The data directory needs to be specified.
原因:没有指定date目录
解决:./bin/mysql_install_db--user=mysql
–datadir=/mysql/data
再次初始化之后可能出现的问题2:
[ERROR]
The data directory '/mysql/data' already exist and is not empty.
解决:删除data文件,重新创建,并给与mysql权限
cd /mysql
rm
-rf data
mkdir data
chown -R mysql. data
可能出现的问题3:
[ERROR]Thebootstrap
log isn't empty:
Errormessage
file '/usr/share/mysql/english/errmsg.sys' had only 886 errormessages,
原因:可以看到mysql_install_dbis
deprecated,说不赞同使用mysql_install_db,推荐使用的方法是:Pleaseconsider
switching to mysqld --initialize ,Pleaseconsider using --initialize instead
解决:#./bin/mysqld --initialize
--user=mysql --datadir=/mysql/data
4>启动服务
将suport文件下面的启动文件拷贝到启动目录下面,并修改启动文件
#cd /mysql
#cp support-filescd/mysql.server
/etc/init.d/mysql
#vim /etc/init.d/mysql
basedir=/mysql
datadir=/mysql/data
#systemctl start
mysql
可能出现的问题:
Failedto start mysql.service:
Unit not found.
原因:找不到服务
解决:
#systemctl
enable mysql
mysql.serviceis not
a native service, redirecting to /sbin/chkconfig.
Executing/sbin/chkconfig
mysql on --提示运行下面命令
#/sbin/chkconfig
mysql on
再次启动mysql:
#systemctl
start mysql
5>登录
#mysql
-u root -S /mysql/mysql.sock -p'hcs5iEKHnq!I' --密码-p必须加单引号:-p'密码',或者利用交互式输入密码进入
注意:如果不能用mysql命令登陆的话可以执行下面操作,并且下面命令为5.6版本的,5.7我安装成功后直接就可以用mysql命令登陆。所以没有尝试下面的操作。
#cd /mysql
#bin/mysql--登录mysql
#cp bin/mysql /usr/local/bin/--将命令复制到系统命令目录下面,可以直接使用mysql登录
#which mysql--查看命令所在目录,如果查看到则可以用mysql登录
祝你安装5.7.19mysql顺利成功!
centos7源码安装mysql5.7.19的更多相关文章
- 64位CentOs7源码安装mysql-5.6.35过程分享
首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...
- 在CentOs7源码安装mysql-5.6.35单实例数据库
首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...
- Centos7源码安装MySQL5.7
a.连接数据库报111 从一台linux远程连接另一台linux上的MySQL,出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx. ...
- CentOS7 实战源码安装mysql5.7.17数据库服务器
CentOS7 实战源码安装mysql5.7.17数据库服务器 简介:实战演练mysql数据库服务器的搭建 mysql简介: mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的 ...
- CentOS7(Linux)源码安装MySQL5.7.X
介绍 软件应用最重要的就是数据库了,可是还有小伙伴不会在Linux上安装MySQL数据库,今天就来讲讲如何在CentOS7环境使用源码进行安装MySQL5.7.X. MySQL官网下载链接:https ...
- CentOS6.7源码安装MySQL5.6
1.源码安装MySQL5.6 # CentOS6操作系统安装完成后,默认会在/etc目录下存在一个my.cnf, # 强制卸载了mysql-libs之后,my.cnf就会消失 rpm -qa | gr ...
- centos7源码安装Python3的前提条件
centos7源码安装Python3的前提条件: # yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline- ...
- lnmp之阿里云源码安装mysql5.7.17
mysql5.7.17一直号称世界上最好的mysql 那么就在阿里云主机linux安装它(采用的源码安装mysql5.7.17) 我在阿里云主机上安装它 连接阿里云主机 进入,跟我们自己装的虚拟机一毛 ...
- CentOS6.5源码安装MySQL5.6.35
CentOS6.5源码安装MySQL5.6.35 一.卸载旧版本 1.使用下面的命令检查是否安装有mysql [root@localhost tools]# rpm -qa|grep -i mysql ...
随机推荐
- 01 简介 如何高效的学习Java
JavaSE 千寻简学习笔记 简介 TIOBE:编程语言排行榜 官网:https://hellogithub.com/report/tiobe/ 如何高效的学习Java 多写(代码)多写(笔记)多写( ...
- 9.Flink实时项目之订单宽表
1.需求分析 订单是统计分析的重要的对象,围绕订单有很多的维度统计需求,比如用户.地区.商品.品类.品牌等等.为了之后统计计算更加方便,减少大表之间的关联,所以在实时计算过程中将围绕订单的相关数据整合 ...
- 【1024打卡】C++字符串的输出((c语言风格)
c++字符串输出(c语言风格) 文章目录 c++字符串输出(c语言风格) 杂记 代码 杂记 今天程序设计竞赛白给了,果然还是太弱了,y总带带我TAT ┭┮﹏┭┮1024快乐 代码 c语言学习 #inc ...
- 巧用"记事本"让病毒无效运行
电脑中毒后,许多朋友会打开"进程管理器",将几个不太熟悉的程序关闭掉,但有时会碰到这种情况:关掉一个, 再去关闭另外一个时,刚才关闭的那个马上又运行了.再从注册表里先把启动项删除后 ...
- Ubuntu20安装nodejs和npm并切换阿里源
参考 阿里巴巴开源镜像站 Ubuntu20安装npm并切换阿里源 安装直接在终端执行 sudo apt-get install nodejs npm没有安装上就执行 sudo apt-get inst ...
- 自动化运维之SaltStack初探
1.1.基础环境 linux-node1(master服务端) 192.168.31.46 CentOS 6.6 X86_64 linux-node2(minion客户端) 192.168.31.47 ...
- Linux系统常用指令
建立一个文件或文件夹的软链接: ln -s 原名 软链接名 软链接就类似Windows下的"快捷方式",访问它其实访问的是它指向的内容. git仓库操作 1.通常远程操作的第一步, ...
- 反射getattr
@property 将类中的方法伪装成属性 与@property相关的俩个 @方法.setter 修改操作 @方法.deleter 删除一个property属性的时候会执行被de ...
- vue学习过程总结(04) - 菜鸟教程归纳
1.组件 组件(component)是vue.js最强大的功能之一.组件可以扩展html元素,封装可重用的代码.组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象 ...
- 面试之Java String 编码相关
实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的.设想如果在面试中,有同学能够条理清晰的回答下面的问 ...