• mysql-5.7.xx在lcentos7下的安装以及mysql在windows以及linux上的性能差异


    前言:

    在centos上安装mysql,整整折腾了将近一天,因为是第一次安装,的确是踩了不少坑,这里详细记录下来,方便各位有同样需求的小伙伴参考。

    该选择什么版本?

    mysql5.7有很多小版本,但是,从5.7.18版本开始,是一个分界线,因为从5.7.18版本及以后版本,安装包里面的的support-files文件夹下,便没有default.cnf了,所以这里导致5.7.18以前的版本和5.7.18及以后版本的安装,是略有不同的。我这里安装选择5.7.28版本,当然,如果您选择其他版本安装也是可以的,但是我建议还是选择5.7.18以后的版本。

    安装准备

    mysql官网同时提供了32位版本和64位版本的安装包,我这里centos是64位的,所以这里下载的是64位的mysql安装包。【注意:如果懵懵懂懂的就去安装,在64位系统上安装了32位的mysql,安装过程中会报各种错误,如果您再去百度这些错误去解决,就走了一个大大的弯路,很遗憾,笔者就犯了这个错误,折腾了一个小时,才又重新下载64位的安装包,引以为戒啊】

    网盘地址:  链接:https://pan.baidu.com/s/1PgMzZITE4BciEYUEh_Sphg    提取码:2n5t    【网盘速度很慢,也可以用这个地址:http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

    具体安装过程

    1.卸载自带的mariadb

     执行:

     rpm -qa | grep mariadb

    发现系统已经默认安装了mariadb,根据系统查询出来的信息,进行删除

        执行:

     yum remove mariadb-libs-5.5.56-2.e17.x86_64 

    2.卸载已经安装的mysql

    执行:

    rpm -qa | grep mysql

     我的系统以前没有安装过mysql,所以不需要做任何操作。 如果您的系统以前安装过mysql,可以参考centos下彻底删除mysql这篇文章进行彻底删除

    3.下载mysql-5.7.28安装包并解压

    您可以用我百度网盘里面的地址拷贝下来,并粘贴到linux服务器相应地址,也可以使用该地址:http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

    关于安装地址的选择,我们显然需要将mysql安装在大磁盘里,

    执行脚本:

    df -h

     根据脚本执行结果来看,我的系统/home挂载点空间较大,所以我将mysql安装在/home 下【您可以根据您的需求安装在其他位置,如/usr/local也是不错的选择】

    依次执行脚本:

    cd /home            
    mkdir mysql   
    cd mysql      
    wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

    tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz      
    mv  mysql-5.7.28-linux-glibc2.12-x86_64   mysql-5.7.28  

        执行ls脚本,可以发现mysql文件夹下已经有了mysql-5.7.28文件夹

    
    

      4.在/usr/local/目录下创建到/home/mysql/mysql-5.7.28的软链接

    
    
    cd /usr/local                       
    ln -s /home/mysql/mysql-5.7.28 mysql  

    5.添加mysql用户,修改mysql目录权限,并用此用户执行应用
    useradd -s /bin/false -M mysql     
    cd /home/mysql                   
    chown -R mysql:mysql mysql-5.7.28 

    6.拷贝配置文件,将mysql的配置文件拷贝为/etc/目录下的my.cnf,并修改配置文件
    这里特别注意:/etc文件夹下并没有my.cnf文件,没有关系,我们直接执行:
    
    
    vi /etc/my.cnf 
    
    
    

    并下下面的内容拷贝到编辑框里面,并执行 :wq 进行保存
     
    [mysqld]
    # binlog 配置
    log-bin=/usr/local/mysql/logs/mysql-bin.log
    expire-logs-days=14
    max-binlog-size=500M
    server-id=1
    # GENERAL
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    socket=/usr/local/mysql/mysql.sock
    user=mysql
    default-storage-engine=InnoDB
    character-set-server=utf8lower_case_table_names = 1explicit_defaults_for_timestamp=true
    [mysqld_safe]
    log-error=/usr/local/mysql/mysql-error.log
    pid-file=/usr/local/mysql/mysqld.pid
    [client]
    socket=/usr/local/mysql/mysql.sock
    [mysql]
    default-character-set=utf8
    socket=/usr/local/mysql/mysql.sock

    7.安装mysql,进入mysql目录执行以下命令

    yum -y install autoconf          
    cd /home/mysql/mysql-5.7.28     
    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  

    
    

    执行脚本如果报以上错误,请执行以下脚本解决:

    
    
    mkdir logs
    touch mysql-bin.index
    chgrp -R mysql /home/mysql/mysql-5.7.28
    
    

    再次执行:

    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

     出现以上提示,则表示安装成功,记录下默认密码:fa&fJH-Wt0FQ 

    8.拷贝启动程序,将mysql的启动程序拷贝到/etc/init.d/目录下

    
    
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    
    
     

    9.安装完,启动mysql服务
    service mysqld start

     

     出现以上错误,说明日志文件没有创建,创建日志文件并修改权限即可

    cd /home/mysql/mysql-5.7.28
    touch mysql-error.log
    chown mysql:mysql mysql-error.log

    再次执行: 

    service mysqld start
    
    

     说明mysql已经安装成功

     

    10.配置环境变量,编辑/etc/profile,方便在任何地方用mysql命令

    
    
    vim /etc/profile 
    在文件的最后面加入
    #mysql
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$PATH:$MYSQL_HOME/bin

     重新编译:

    
    
    source /etc/profile
    
    
    11.登录mysql,修改密码

    首次登录没有密码,提示输入密码时,输入第7步安装时生成的密码:fa&fJH-Wt0FQ 
    
    
    mysql -uroot -p
    
    
    
    

    使用alter user重置密码:

    mysql> alter user 'root'@'localhost' identified by '******';
    mysql> flush privileges;

    配置远程访问:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;

    至此,mysql安装完成。

    后记:

    因为对linux钻研的不是十分透彻,所以,一直有抵触心理,以至于安装mysql时,百度了一下看看mysql在windows上和linux上的差异,大部分人说的是差异并不大。 我妥协了,把mysql安装在了windows server 2016 上,但是性能并不十分出众,虽然也勉强能用,但是绝对不是最优。 身为资深码农,就是不能怕困难,所以我决定拥抱linux,把mysql装在linux上,并比较性能差异:

    指标 windows server 2016下时间(16核32GB) cnetos7下时间(16核32GB)
    1200万+数据取count的时间 10.711秒 2.939秒
    600万+数据取count时间 6.216秒 1.303
    175万+数据取count的时间 3.025秒 0.671秒
    1200万+数据创建1个索引时间 1300秒 237秒
    600万+数据创建1个索引时间 700秒 120秒
    175万+数据创建1个索引时间 130秒 28秒

     

             经过比较得出的结论,同样的配置,linux下的mysql各项性能指标,是windows的3-7倍之间。  所以,身为程序员,我们要选择最优的,不要妥协,不要将就,不要纠结,mysql就装在linux上吧,人家刚诞生时,就是装在linux上的,linux和mysql本身就是天生一对,我们不要拆散他。

    本文来源:博客园 所发文章随笔,转发请注明作者和原文地址,谢谢 写作不易,请多多支持。
  • 相关阅读:
    Django修改数据库时出错 django.db.utils.OperationalError: (1091, "Can't DROP 'content'; check that column/key exists")
    ini配置文件必知
    常用的两个批处理
    windows Path变量优先级
    curl开源库编译
    VS属性页的目录类型
    连通域去噪
    C++调用V8与JS交互
    VS2010,Qt插件安装使用
    utf8转gbk,libcurl中文乱码处理
  • 原文地址:https://www.cnblogs.com/lovezilv/p/13508545.html
Copyright © 2020-2023  润新知