前言:

在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时间 3.216秒 1.303
175万+数据取count的时间 3.025秒 0.671秒
1200万+数据创建索引1个索引时间 1300秒 237秒
600万+数据取count时间 700秒 120秒
175万+数据取count的时间 130秒 28秒

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

mysql-5.7.xx在lcentos7下的安装以及mysql在windows以及linux上的性能差异的更多相关文章

  1. Mac下新安装的MySQL无法登陆root用户解决方法

      一 设置MySQL命令行搜索路径 0.苹果->系统偏好设置->最下边点mysql 在弹出页面中 启动mysql服务 1.打开终端,输入: sudo vi ~/.bash_profile ...

  2. centos下yum安装crontab+mysql自动备份

    参考博文: centos下yum安装crontab yum install vixie-cron crontabs      //安装 chkconfig crond on               ...

  3. Mac下新安装的MySQL无法登陆root用户(安装时没有设置密码)

    1.也不知是何原因,新安装好的MySQL,如果尝试用mysql -u root -p登陆就会出现这样的错误,但是root用户根本就没有设置密码. $ cd /usr/local$ cd mysql $ ...

  4. windows和linux上mysql的安装

    mysql基于多平台,多版本的安装 mysql.tar.gz  链接:https://pan.baidu.com/s/1lG9BNL1mG4qbjM8xLHtrjQ 密码:s4tk MySQL 是一个 ...

  5. windows下新安装的mysql修改root password问题

    常用步骤: 1. 在my.ini中的mysqld下添加一行 skip-grant-tables 2.重启mysql后直接进入后,用SQL直接修改password列: C:\> net stop ...

  6. 【未解决】Linux下PHP安装扩展Mysql的问题

    [步骤分析] 1.在PHP源码包下定位到指定位置:源码包/ext/mysqli 注1:网上很多地方红字部分是mysql,其实PHP5以后已经不用mysql了. 2.运行:/usr/local/php/ ...

  7. mac系统下docker安装配置mysql详细步骤

    上文介绍了MacOS安装Docker傻瓜式教程,安装好后第一件事就决定把本地数据库迁移过来,那么首先就得安装mysql,下面就开始我们的安装之旅吧. 一.docker配置镜像加速器 我们使用docke ...

  8. 在Windows XP下手动安装Apache+MySQL+PHP环境 要点

    在整个wamp环境搭建中,本质的工作如下: 1,配置系统对php中dll文件能默认处于调用状态.在windos下,对dll文件系统默认处于调用状态的,有两种采用的方式.第一种是:把需要调用dll文件复 ...

  9. Linux下 刚安装完mysql 修改密码

    在Centos中安装MySQL后默认的是没有root密码的,默认的是回车, 那么为了方便需要修改密码. 没有密码为MYSQL加密码: mysql -uroot -p 回车 提示输入密码,为空回车 up ...

随机推荐

  1. 高效C++:序

    C++的语法全而复杂,如何简洁高效的使用C++的各种语法,是一个值得研究的问题,特别是对于刚入门或是有小几年开发经历的同学,了解或是熟悉这个问题,所得到的提升无疑是巨大的.向前人学习,站在巨人的肩膀上 ...

  2. 题解 洛谷 P5385 【[Cnoi2019]须臾幻境】

    首先我们知道 \(n\) 个点的树有 \(n-1\) 条边,因此对于森林来说,其点数减边数即为树的个数.那么对于普通的图,求出其任意一个生成树森林,森林中树的个数即为原图中连通块的个数,也就是点数减边 ...

  3. 01 shell编程之变量定义

    一.SHELL介绍 ㈠ 什么是shell脚本? 简单来说就是将需要执行的命令保存到文本中,按照顺序执行.它是解释型的,意味着不需要编译. 若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= s ...

  4. 抓取Android崩溃日志

    作为一个测试人员,特别是安卓的测试,由于系统版本的不同和手机本身各个品牌的优化和硬件的不同,会出现各种各样的崩溃. 记录崩溃的方式有很多种,比如使用录屏工具或文档进行记录,但是最简洁明了可以直接定位的 ...

  5. 前端学习(十六):JavaScript运算

    进击のpython ***** 前端学习--JavaScript运算 在这一节之前,应该做到的是对上一节的数据类型的相关方法都敲一遍,加深印象 这部分的知识的特点就是碎而且杂,所以一定要多练~练习起来 ...

  6. PHP入门之类型与运算符(一)

    前言 PHP对于大部分人来说,是比较容易入门的.笔者也是刚学习不久,所以就把自己学习的基础知识进行总结和整理.第一部分是类型与运算符.如果你想学习PHP,可以参考PHP学习手册学习,任何一本教学资料也 ...

  7. DOM练习 选择框、表格添加、变色

    多个选择框,三个按钮,显示:全选.反选.不选 html部分,建立五个多选框,三个按钮 <input type="checkbox"> <input type=&q ...

  8. Java Web(5)-Servlet详解(上)

    一.Servlet 1. 什么是Servlet Servlet 是 JavaEE 规范之一,规范就是接口 Servlet 就 JavaWeb 三大组件之一,三大组件分别是:Servlet 程序.Fil ...

  9. emacs org-mode 中文手册精简版(纯小白)

    一只小白看了大佬的讲解视频结合其他大佬给整理的笔记再结合emacs 官方英文手册,觉得自己的知识好像增加了. 当时自己在全网搜索的时候没有看到那种纯小白的手册,本小白就写了这个,就当奉献社会了.若有不 ...

  10. Ubuntu Linux markdown编辑工具 typora 安装

    Typora简介 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别.即时渲染使得你写Markdown就想是写Word文档一样流畅自如 ...