zoukankan      html  css  js  c++  java
  • 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>

     


    完......

  • 相关阅读:
    游戏与微博的结合,一个微博后台与前端的设计(基于mysql)。(一)
    UDK 学习点滴 (不断更新)
    多语言版本与UI的展现问题
    用dx11检查你的硬件设备中有几个适配器(adapter)
    多重采样与dx11检查硬件多重采样能力的API
    不均匀点香求时间的问题解
    图片内包含文本制作方法
    vim 搜索 向上 向下 取消高亮
    解决Ucenter 头像上传小收获
    不知道是什么意思
  • 原文地址:https://www.cnblogs.com/xinglichao/p/10008782.html
Copyright © 2011-2022 走看看