1.概述

对于mysql二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql。缺点是已经编译过,性能不如源码编译得好,不能灵活定制编译参数。如果用户即不想安装最简单却不够灵活的RPM包,又不想安装复杂费时的源码包,那么已编译好的二进制包将是最好的选择,下面让我们来介绍如何在linux系统下安装mysql服务端。

2.前期准备

2.1下载mysql二进制安装包

mysql官网:https://dev.mysql.com/downloads/mysql/

因为我下载的是mysql-8.0.23-linux-glibc2.12-x86_64.tar版本,如果有最新版本,则下载最新版本就好了。

2.2导入mysql二进制安装包

通过Xftp工具把安装包传输到linux系统package目录去:

3.mysql部署

●解压mysql安装包

  1. --切换到安装目录
  2. cd /app
  3. --解压xz压缩文件
  4. tar -xvf /app/package/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz

●修改mysql文件夹名称

  1. --把mysql-8.0.23-linux-glibc2.12-x86_64修改为mysql文件夹名称
  2. mv /app/mysql-8.0.23-linux-glibc2.12-x86_64 /app/mysql

●创建data目录

  1. --在mysql根目录下创建data目录,用于存放数据
  2. mkdir /app/mysql/data

●创建mysql用户组和mysql用户

  1. --创建mysql用户组和mysql用户
  2. groupadd mysql
  3. useradd -g mysql mysql

●修改mysql目录权限

  1. --修改mysql目录权限
  2. chown -R mysql.mysql /app/mysql/

●初始化数据库

  1. --先切换到mysql安装目录
  2. cd /app/mysql
  3. --初始化数据库
  4. bin/mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data


●配置mysql

  1. --先切换到mysql.support-files目录
  2. cd /app/mysql/support-files
  3. --在mysql/support-files创建文件my-default.cnf
  4. touch my-default.cnf
  5. --复制配置文件到/etc/my.cnf
  6. cp -a ./my-default.cnf /etc/my.cnf
  7. --编辑my.cnf
  8. vim /etc/my.cnf

my.cnf输入如下配置内容:

  1. [client]
  2. port=3306
  3. socket=/tmp/mysql.sock
  4.  
  5. [mysqld]
  6. port=3306
  7. user=mysql
  8. socket=/tmp/mysql.sock
  9. basedir=/app/mysql
  10. datadir=/app/mysql/data

●配置环境变量

  1. --编辑profile文件
  2. vim /etc/profile
  3. --配置mysql环境变量
  4. PATH=/data/mysql/bin:/data/mysql/lib:$PATH
  5. export PATH
  6. --使mysql环境变量生效
  7. source /etc/profile
  8. --看环境变量是否生效
  9. echo $PATH

●启动mysql

  1. cd /app/mysql/bin
  2. systemctl start mysqld
  3. or
  4. service mysql start

启动mysql时候可能会遇到如下错误:
●Failed to start mysqld.service: Unit not found.

or
Starting MySQL.Logging to '/app/mysql/data/dengwu.err'.
... ERROR! The server quit without updating PID file (/app/mysql/data/dengwu.pid).

解决方法如下:

  1. --需要安装mariadb-server
  2. yum install -y mariadb-server
  3. --然后启动mariadb服务
  4. systemctl start mariadb.service
  5. --需要的可以添加mariadb服务开机启动
  6. systemctl enable mariadb.service

●Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

解决方法如下:

  1. chown -R mysql.mysql /app/mysql/

●Starting MySQL... ERROR! The server quit without updating PID file (/app/mysql/data/dengwu.pid).
解决方法如下:

  1. --查看mysql进程
  2. ps -ef|grep mysqld
  3. --杀死mysql进程
  4. kill -9 mysql进程ID

然后重新启动下mysql:

4.修改mysql密码

root用户第一次登录mysql,因为初始密码我们并不知道,一般情况下我们都会重新设置一个新的密码,具体操作如下:

  1. --编辑my.cnf
  2. vim /etc/my.cnf

输入如下命令行:

  1. default_authentication_plugin=mysql_native_password

如果忘记了密码再加上:

  1. --跳过密码验证(等设置了密码就去掉)
  2. skip-grant-tables

然后登录mysql:

  1. --登录mysql
  2. mysql -u root -p

然后输入命令查看mysql用户组:

  1. --查看mysql用户表
  2. select user,host,authentication_string from mysql.user;


看看root用户没有开启远程连接权限,如果没有则执行如下命令:

  1. --修改root用户可以远程连接
  2. update mysql.user set host='%' where user='root';

开启远程连接权限后,再来修改root用户密码:

  1. --如果hostlocalhost则@字符后面是localhost,反之则是%,以host结果为准
  2. --修改加密规则
  3. alter user 'root'@'%' identified by 'qwer1234' password expire never;
  4. --更新一下用户的密码
  5. alter user 'root'@'%' identified with mysql_native_password by 'qwer1234';
  6. --刷新权限
  7. flush privileges;
  8. --修改root用户密码
  9. alter user 'root'@'%' identified by 'qwer1234';

  1. --重新启动mysql
  2. service mysql restart;

5.配置mysql阿里云安全组策略

登录阿里云->安全组规则->访问规则->入方向->手动添加如下策略:

使用Navicat连接成功:


参考文献:
linux下安装mysql8.0.x步骤

(1)MySQL进阶篇在linux环境下安装的更多相关文章

  1. linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)

     linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...

  2. Linux环境下安装Tigase XMPP Server

    Tigase是一种XMPP服务器,可以作为采用XMPP协议的各种IM(Instant Messeging)工具(如Pandion.Spark等)的服务器. 在Linux环境下安装Tigase的步骤如下 ...

  3. ElasticHD Linux环境下安装

    ElasticHD Linux环境下安装教程        ElasticHD windows环境下安装教程   上一篇讲了ElasticHD windows环境下安装,这一篇继续说明ElasticH ...

  4. Linux环境下安装MySQL5.7

    记录一下Linux环境下安装MySQL,大家按顺序执行即可,5分钟内即可完成安装,亲测可行.不过下载MySQL安装包需要大家花费一些功夫,送个链接给大家,大家按需下载: https://dev.mys ...

  5. Linux环境下安装NodeJS和mongoDB

    前面的话 本文将详细介绍如何下Linux环境下安装NodeJS和mongoDB NodeJS [1]使用二进制包安装 1.在官网下载Linux环境下的NodeJS安装包 2.通过xftp软件将安装包上 ...

  6. 在linux环境下安装redis并且搭建自己的redis集群

    此文档主要介绍在linux环境下安装redis并且搭建自己的redis集群 搭建环境: ubuntun 16.04 + redis-3.0.6 本文章分为三个部分:redis安装.搭建redis集群 ...

  7. [Linux]pycharm在Linux环境下安装

    之前转载了一个在Windows环境下pycharm专业破解的安装的文章,今天为了在Linux环境下安装使用odoo10,所以尝试在Linux环境下安装pycharm专业破解版看看. windows下安 ...

  8. Linux 环境下安装python相关

    目录 Linux 环境下安装python相关 linux软件包管理工具之yum工具(如同pip3工具) yum源理解 下载阿里云的.repo仓库文件 ,放到/etc/yum.repos.d/ yum安 ...

  9. JavaWeb入门——在Linux环境下安装Tomcat服务器

    JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...

随机推荐

  1. /etc/fstab和/etc/mtab的区别

    etc/fstab文件的作用         记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正 ...

  2. (24)bzip2命令:压缩文件(.bz2格式)&&bunzip2命令:bz2格式的解压缩命令

    1.bzip2 命令同 gzip 命令类似,只能对文件进行压缩(或解压缩),对于目录只能压缩(或解压缩)该目录及子目录下的所有文件.当执行压缩任务完成后,会生成一个以".bz2"为 ...

  3. ARP病毒系列——基础篇

                              概念和关系介绍:(ARP.IP.Mac 三者的关系) ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工 ...

  4. Leetcode LRU缓存,数组+结构体实现

    一.算法思路 LRUCache类有以下函数和变量: LRUCache(int capacity): capacity是当前对象能够存储的键值对(key,value)最大个数. int get(int ...

  5. docker学习一

    由于本人学习精力有限,不能像大学时那样,每个笔记都认真的手敲记录,一些地方会截图展示,并会添加自己的理解和备注,建议大家也做自己的笔记,看别人的可以,但是自己动手并思考记忆更深刻. 1.什么是虚拟化 ...

  6. cassandra权威指南读书笔记--Cassandra架构(2)

    环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...

  7. hdu2157 How many ways??

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  8. 2020ICPC·小米 网络选拔赛第一场 J.Matrix Subtraction (贪心,二维差分)

    题意:给一个\(nXm\)的矩阵,可以选取\(aXb\)的子矩阵,使子矩阵中的所有元素减一,问最后是否能使矩阵中所有元素变为\(0\). 题解:首先贪心,我们看最左上角的元素,如果\(g[1][1]\ ...

  9. 分布式一致性算法 2PC 3PC Paxos

    分布式一致性算法的目的是为了解决分布式系统 一致性算法可以通过共享内存(需要锁)或者消息传递实现,本文讨论后者实现的一致性算法,不仅仅是分布式系统中,凡是多个过程需要达成某种一致的场合都可以使用. 本 ...

  10. 力扣119.杨辉三角II-C语言实现

    题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 来源:力扣(LeetCod ...