专栏首页bboysoullinux编译安装mysql5.7

linux编译安装mysql5.7

听说编译mysql5.7编译很消耗内存,今天就在1g内存的树莓派下尝试一下

下载

wget mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.17.tar.gz 因为官方下载地址速度太慢了,所以我直接去搜狐镜像站下载了 tar -zxvf mysql-boost-5.7.17.tar.gz

编译安装

  • 首先安装cmake 1.下载 wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz tar -zxvf cmake-3.7.2.tar.gz 2.编译安装 安装方法在readme里有 ./bootstrap --prefix=/usr/local/cmake make 这里可能有人会问为什么不加上-j参数,因为我加上后我的树莓派总是编译失败,所以不加了 make install

之后执行 /usr/local/cmake/bin/cmake . -DWITH_BOOST=/data/mysql/mysql-5.7.17/boost/boost_1_59_0 后面with——boost的意思是加上boos库,因为我们下载的mysql是带boost的所以在mysql解压出来的源码文件里就有,而前面就是cmake的路径,因为我没有把cmake设置到系统的环境变量里,所以就只能用绝对路径了

  • 然后报错
CMake Error at cmake/readline.cmake:64 (MESSAGE):
  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:107 (FIND_CURSES)
  cmake/readline.cmake:197 (MYSQL_USE_BUNDLED_EDITLINE)
  CMakeLists.txt:483 (MYSQL_CHECK_EDITLINE)


-- Configuring incomplete, errors occurred!
See also "/data/mysql/mysql-5.7.17/CMakeFiles/CMakeOutput.log".
See also "/data/mysql/mysql-5.7.17/CMakeFiles/CMakeError.log".

提示要安装libncurses5-dev 那就执行 sudo apt-get install libncurses5-dev

然后再次执行 /usr/local/cmake/bin/cmake . -DWITH_BOOST=/data/mysql/mysql-5.7.17/boost/boost_1_59_0 make 果然在 [ 44%] Building CXX object sql/CMakeFiles/sql.dir/item_geofunc.cc.o 这个的时候因为内存太小所以编译失败。

  • 那么就增加swap空间了 1.创建swap文件 sudo dd if=/dev/zero of=/swapfile bs=64M count=16 这里的大小随便设置,文件名字也可以随便取,不一定是swapfile 2.格式化 sudo mkswap /swapfile 3.启用swap空间 sudo swapon /swapfile

然后 你可以free -m看一下swap空间是不是真的使用了,之后 make 编译的时间很长的,我用的是树莓派,所以更长,所以就没有统计时间了,你可以重复多执行几遍make 然后 make install

简单的配置

  • 首先建立mysql用户 先说一下为什么要建立mysql用户,首先当什么很牛逼的黑客通过mysql拿到了数据库的权限后,它是不能拿到root权限的,所以两个字安全 groupadd mysql useradd -g mysql mysql
  • 然后修改一些文件夹和文件的权限 /usr/local/ chown -R mysql mysql chgrp -R mysql mysql
  • 初始化mysql配置表 cd mysql bin/mysqld --initialize --user=mysql 然后要注意了,注意了,看输出的最后一行
2017-02-10T07:41:54.045121Z 1 [Note] A temporary password is generated for root@localhost: 1!HD!ijywTi)

1!HD!ijywTi这是root的密码 然后 bin/mysql_ssl_rsa_setup 这个我就不知道干什么的了,知道的求评论

  • 将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者 chown -R root . chown -R mysql data
  • 复制配置文件 cp support-files/my-default.cnf /etc/my.cnf
  • 之后启动mysql bin/mysqld_safe --user=mysql &
  • 配置配置文件
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
#--mysql目录
datadir = /usr/local/mysql/data
#--数据库目录
# port = 3306
#--数据库端口
# server_id = .....
socket = /tmp/mysql.sock
#--socket目录
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
  • 复制mysql启动文件 cp
  • 最后启动测试一下 一直显示密码错误,可能是因为密码中有!的缘故,所以直接修改密码吧 结束mysql所有进程 然后 mysqld_safe --skip-grant-tables --skip-networking & 这个命令在mysql的bin目录下 然后 mysql -p mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost'; 把密码改成自己的密码就好了 然后结束mysql所有进程 然后报错 ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root! 使用指定用户启动就好了 ./mysqld --user=root 然后登陆 ./mysql -uroot -p 再次修改密码,因为刚才这样是创建不了数据库的 set password=password('密码');

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 记载一次删除mysql的默认数据库mysql的过程

    今天终于尝到了什么叫删库跑路,妈的真的悲剧,早上想在树莓派里安装个wordpress,想放点街舞视频给大家分享一下,突然发现数据库里面还有一个以前的论坛数据库,...

    bboysoul
  • ubuntu彻底卸载mysql并且重新安装

    首先删除mysql: sudo apt-get remove mysql-* 然后清理残留的数据 dpkg -l |grep ^rc|awk '{prin...

    bboysoul
  • 在docker中使用MySQL数据库

    我是一直想把所有的程序都跑在docker里面,这样一方面是为了便于管理,另外一方面也可以增强自己对docker的理解,所以今天我就想学习一下最重要的数据库部分

    bboysoul
  • 技术分享 | 使用备份恢复实例时存在的坑

    爱可生服务团队成员,负责处理客户在MySQL日常运维中遇到的问题;擅长处理备份相关的问题,对数据库相关技术有浓厚的兴趣,喜欢钻研各种问题。

    爱可生开源社区
  • 超越村后端开发(5:远程同步本地与服务器端的MySQL数据库)

    安装MySQL5.7的过程中是没有让用户输入初始密码这一步的,安装完MySQL5.7之后,以root的身份,输入命令:

    玩蛇的胖纸
  • MySQL远程代码执行/权限提升漏洞的分析与实践(CVE-2016-6662)

    本文作者:安全小飞侠,原文链接:http://avfisher.win/archives/593 0x00 背景 2016年9月12日,国外安全研究人员Dawi...

    Seebug漏洞平台
  • 原 数据库主从配置日志

    霡霂
  • kubernetes中部署mysql高可用集群

    很多软件后端使用的存储都是mysql,当这些软件系统在生产环境部署时,都会面临一个严峻问题,需要在生产环境中部署一个高可用的mysql集群服务。刚好在最近一周的...

    jeremyxu
  • centos yum安装mysql5.6以上版本

    centos 自带的软件库只能安装mysql5.1,后续的版本就不行了,要升级mysql只能自己想办法。

    帘卷西风
  • MySQL的安装、启动和基础配置 —— mac版本

    第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads/选...

    changxin7

扫码关注云+社区

领取腾讯云代金券