Centos7服务器中通过编译源码安装MySQL
基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径
在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置
我决定再尝试一下通过编译源码来自定义安装:
首先下载MySQL5.7的源码文件
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载源码文件并上传到服务器
上图中我已经解压完毕
tar zxvf mysql-5.7.24.tar.gz
然后在我的home路径下新建一个mysql文件夹,再在里面新建一个data文件夹
mkdir -p /home/mysql/data
编译源码的基础要有gcc
而且要确保cmake可以使用,如果不可以那就安装
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
现在进入mysql-5.7.24路径下,进行操作
首先进行编译
执行
cmake -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/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=/home/mysql
注意最后面的BOOST,MySQL的安装需要boost,则在编译时指定下载boost,并执行下载下来的路径为mysql
如果没指定则会报错
等待编译成功,然后执行make和make install来安装
make && make install
经过漫长的等待,终于安装成功啦
现在来看看mysql的路径
****************************************************************
由于Centos7默认安装了MariaDB,我已经将其拆卸,但是mysql的用户组以及用户还在,这样我就不需要再创建了
还需要将 /home/mysql赋予给mysql
chown -R mysql:mysql /home/mysql
接下来,进入mysql的bin路径执行命令初始化数据库
./mysql_install_db --basedir=/home/mysql --datadir=/home/mysql/data --user=mysql
拷贝/bin路径下的mysql.server到/etc/init.d路径下
cp /home/mysql/bin/mysql.server /etc/init.d/mysql
配置mysql到环境变量,便于使用命令
vim /root/.bash_profile
添加mysql路径
PATH=$PATH:$HOME/bin:/home/mysql/bin
使用source使其生效
现在可以启动mysql试一下了
systemctl start mysql
报错:没有 /var/lib/mysql(安装的时候忘记截图了)
那就自己建一个
mkdir /var/lib/mysql
权限
chown -R mysql:mysql /var/lib/mysql
再次启动,成功了
设置开机启动(由于不是本机native服务无法使用systemctl)
/sbin/chkconfig mysql on
然后我就遇到了一个大问题:
登陆使用root用户,但是密码是啥呢?在默认安装的时候(使用yum安装)会在/var/log/下有日志文件,里面会有个临时密码用于登陆
但是在这里,启动的日志文件怎么也找不到(log文件在哪呢 /etc下都没有my.cnf,?看到网上其他内容有说需要在初始化前自己创建/var/mysql/log还有需要修改/etc/my.cnf 我这竟然找不到)
他还提示我要我输入随机密码
可我根本就找不到随机密码在哪?
无奈我想到了一个办法,假设我忘记了root的密码,那肯定是有解决办法的,找了相关资料
首先停到mysql服务
systemctl stop mysql
然后切换到mysql的bin路径下
cd /home/mysql/bin
执行
./mysqld_safe --skip-grant-tables &
然后使用
mysql -p
进入mysql,这时还是会提醒输入password,只要回车就好,终于进到mysql了
然后在里面执行
update mysql.user set authentication_string=password('临时密码') where user='root' and Host = 'localhost';
刷新
flush privileges;
exit退出,使用命令来登陆,输入的密码当然是刚才设置的临时密码
mysql -uroot -p
但是现在还不可以使用sql语句来操作数据库,这相当于我们刚使用临时密码登陆到数据库,最先要做的就是修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
现在终于可以操作mysql了,后续的授权远程登陆等等就和前面默认安装的mysql完全相同了
[root@Server-002 bin]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.24 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
完......
Centos7服务器中通过编译源码安装MySQL的更多相关文章
- Linux服务器中OpenSSH的源码编译与升级
Linux服务器中OpenSSH的源码编译与升级 https://www.oschina.net/question/12_7383
- Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从 一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...
- Ubuntu下Ruby的下载和编译源码安装
1.Ruby的下载 Ruby可以在Ruby 官网上下载,如果想获取更多的Ruby版本,可以到淘宝镜像网站下载. 2.Ruby的编译源码安装 解压 首先把下载下来的源码压缩包解压到自己指定的目录 编译安 ...
- centos 6x系统下源码安装mysql操作记录
在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...
- CentOS 7下源码安装MySQL 5.7
网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点 ...
- CentOS 6.4 源码安装MySQL 5.6
1.安装前准备工作 1.1 必备的包 gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. ...
- 源码安装mysql,及主从同步
源码安装mysql [可选] 如果用源码安装cmake软件: cd /home/oldboy/tools/ tar xf cmake-.tar.gz cd cmake- ./configure #CM ...
- lnux下源码安装MySQL 5.6
nux下源码安装MySQL 5.6 说明:本文是我自己测试的MySQL5.6源码安装,经本人亲自实践,完全可用,另在5.6之前的版本也是可以按照本文源码安装的.我是在两台linux下一台安装5.5,另 ...
- Linux平台下源码安装mysql多实例数据库
Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...
随机推荐
- mysql 安装问题一:由于找不到MSVCR120.dll,无法继续执行代码.重新安装程序可能会解决此问题。
这种错误是由于未安装 vcredist 引起的 下载 vcredist 地址:https://www.microsoft.com/zh-CN/download/details.aspx?id= ...
- popup的简单应用举例(具体在增删改查组件中用到)以及补充的知识点
一.首先说一下自执行函数 1. 立即执行函数是什么?也就是匿名函数 立即执行函数就是 声明一个匿名函数 马上调用这个匿名函数 2.popup的举例 点击,弹出一个新的窗口.保存完事,页面不刷新数据就返 ...
- cf1106E 线性dp+multiset
之前看错题目了,以为父亲的选择时按最大收益来的.结果并不是 /*注意题目中说只要某个时间父亲可以取得红包,他就取硬币数最多同时耗时最小的那个就是不管后续如何,不一定满足最大收益 dp[i][j]表示时 ...
- 20165314 学习基础和C语言基础调查
技能学习心得 你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?与老师博客中的学习经验有什么共通之处? 从小我的父母就逼着我学习很多技能,比如钢琴,围棋,书法等,不过很 ...
- shell 判断文件夹或文件是否存在
文件夹不存在则创建 if [ ! -d "/data/" ];then mkdir /data else echo "文件夹已经存在" fi 文件存在则删除 i ...
- C++ Primer 笔记——标准库类型string
1.如果使用等号初始化一个变量,实际上执行的是拷贝初始化,编译器吧等号右侧的初始值拷贝到新创建的对象中去:如果不使用等号则执行的是直接初始化. std::string str = "Test ...
- css 清除浮动的几种方式
1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...
- 图像特征的提取(gaussian,gabor,frangi,hessian,Morphology...)及将图片保存为txt文件
# -*- coding: utf-8 -*- #2018-2-19 14:30:30#Author:Fourmi_gsj import cv2 import numpy as np import p ...
- ubuntu 出错 /etc/sudoers is world writable
如果改变了这个,目录的权限sodu就不能用了,当你再使用sodu命令就会爆如下问题: sudo: /etc/sudoers is world writablesudo: no valid sudoer ...
- views.py视图函
views.py视图函数来自 urls 的映射关系 常用所需模块 from django.shortcuts import render # ****** 渲染 render 跳转到指定的 url.h ...