• 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>

     


    完......

  • 相关阅读:
    171. Excel Sheet Column Number (Easy)
    349. Intersection of Two Arrays (Easy)
    453. Minimum Moves to Equal Array Elements (Easy)
    657. Judge Route Circle (Easy)
    CSS笔记
    保存页面状态
    UI开发总结
    ubuntu 下配置munin
    反向代理配置
    JavaScript 高级程序设计第二版
  • 原文地址:https://www.cnblogs.com/xinglichao/p/10008782.html
Copyright © 2020-2023  润新知