记录CentOS7 Linux下安装MySQL8_适合正式环境_干货满满(超详细,默认开启了开机自启动,设置表名忽略大小写,提供详细配置,创建非root专属远程连接用户)_centos7安装mysql8-程序员宅基地

技术标签: 虚拟机  运维  linux  服务器  mysql  

安装前先清理mariadb和mysql相关文件:

   通过命令:rpm -qa|grep mariadb 查询是否安装了mariadb

   卸载:rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64(复制上面命令查到的完整名称)

   通过命令:find / -name mysql 查询跟mysql相关的文件

   删除文件命令:

   rm -rf /etc/selinux/targeted/active/modules/100/mysql

   rm -rf /usr/lib64/mysql

一、下载MySQL 

选择Community社区免费版,其他的要收费,网址:MySQL :: Download MySQL Community Server

1. 按照下图选择

    

   CentOS7就选择7的,CentOS8就选8,以此类推

   本教程以CentOS7为例,MySQL版本为8.0.33

   如果跟我版本不同,注意下面所有命令包含版本号的地方,要改正为你安装的版本

2. 然后找到对应安装包,本教程选择 RPM Bundle,点击Download

   

3. 下载

   

   到终端通过wget命令下载(没有wget通过命令:yum -y install wget 安装)

   先到 /usr/local 目录下:cd /usr/local

   创建mysql文件夹:mkdir mysql

   进入mysql文件夹:cd mysql

   

   输入下载mysql安装包命令回车下载:wget + 上面右键复制的链接粘贴过来

   如:wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

 输入 ls 命令查看,如上则下载好了

二、安装MySQL

1. 解压安装包

   

  解压命令:tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

2. 分别安装 common、libs、client、server 4个模块  ​​​​

  安装命令:

     rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force

     rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force

     rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force

     rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force

   查看安装命令:rpm -qa|grep mysql

三、修改my.cnf配置、初始化(表名忽略大小写)

1. 修改my.cnf配置

   * 这里特别注意:

   在 Linux 环境下默认是区分大小写的,如要改变这种默认方式,

   需要在初始化前修改 lower_case_table_names,mysql8.0 要求我们不能在initialize之后再

   更改lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。

   初始化前,修改文件 my.cnf ,在 [mysqld] 配置节点下添加 lower-case-table-names=1

   这里我提供一个经本人测试可用的有各种配置的my.cnf

[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4
no-auto-rehash

[mysqld]
port=3306

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'

lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

skip-external-locking
skip_name_resolve
max_connect_errors=10

slow_query_log=on
long_query_time=3
slow_query_log_file=/var/log/slowsql.log

key_buffer_size=128M
read_buffer_size=1M
read_rnd_buffer_size=2M
max_allowed_packet=1M
table_open_cache=64
sort_buffer_size=512K
net_buffer_length=8K

default_storage_engine=InnoDB
innodb_buffer_pool_size=1024M
innodb_flush_log_at_trx_commit=2
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_log_files_in_group=3
innodb_lock_wait_timeout=50

   为方便大家直接复制粘贴就可以用,所以没有写注释

(之前试过复制粘贴别人的报错,应该是有些空格是特殊符号或者编码、乱码之类的问题导致) 

   各配置项注释可用参考该链接:   值得收藏!my.cnf配置文档详解-WinFrom控件库|.net开源控件库|HZHControls官网

   编辑修改my.cnf命令:vi /etc/my.cnf

   在里面按 i 键,将上面配置复制粘贴后(用XShell或EditPlus工具支持复制粘贴),按Esc键

   再输入:wq 保存退出即可

另外需要在 /var/log 下新建一个 slowsql.log 文件,是用来记录慢SQL的日志,方便以后查看哪个SQL比较慢进行优化:

创建:touch /var/log/slowsql.log

赋权限:chown mysql:mysql /var/log/slowsql.log

              chmod 664 /var/log/slowsql.log

2. 初始化

   初始化前还要改一下配置里出现的一些文件夹归属和权限,否则可能因为没有权限报错:

      chown -R mysql:mysql /var/lib/mysql

      上面命令表示将目录 /var/lib/mysql 以及里面所有文件归属赋给mysql组的mysql用户,mysql组和mysql用户应该是安装的时候自动创建了的,可以在安装完后通过以下命令查看一下:

   cat /etc/passwd

   

   修改权限:chmod -R 755 /var/lib/mysql

(755代表所有者全权限,组用户/其他用户可读可执行不能编辑)

   然后执行初始化命令(指定mysql用户):mysqld --user=mysql --initialize

   *重要:初始化完成之后,会自动生成一个随机密码在mysql日志文件里,
   即my.cnf配置的log-error配置

   

    命令查看随机密码:cat /var/log/mysqld.log | grep password

将root@localhost:后面的字符复制保存下来(注意别多复制到空格),后面登录mysql需要,登录后再改成自己想要的密码即可

四、启动MySQL,修改登录密码

1. 启动mysql

   命令:systemctl start mysqld

   查看启动状态:systemctl status mysqld

   如上图则启动成功,如果报错,可通过查看mysql log日志查看报错信息去百度解决,如下图:

   查看mysql日志命令:cat /var/log/mysqld.log

2. 登录MySQL,修改登录密码

   输入:mysql -uroot -p 回车,然后复制前面查到的随机密码粘贴过来

   不显示明文的,粘贴之后会显示粘贴了多少个字符,说明有输入密码

   

   登录成功

   

   修改登录密码:alter user 'root'@'localhost' identified by '123456';

   

   然后输入 exit; 退出,再登录,输入新密码即可 

五、创建非root远程登录用户,开启远程登录

1. 创建非root远程登录用户

    

   创建远程登录用户以及设置密码:create user 'admin'@'%' identified by '123456';

   (* 注意:建议这里设置的密码复杂些,我这里只是作为教程设置得简单,数字+大小写字母+特殊字符都用上最好) 

   赋予权限(*.*代表可访问操作所有数据库和表):

   grant all privileges on *.* to 'admin'@'%' with grant option;

   刷新生效:flush privileges;

   退出:exit;

2. firewall防火墙开放端口

   查看防火墙状态:systemctl status firewalld

   

   如果不是上图状态,执行命令开启:systemctl start firewalld

   永久开启3306端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent

   重启生效:firewall-cmd --reload

   查看有没有加上:firewall-cmd --list-ports

   

   (* 注意:如果是阿里云服务器,还需要在服务器控制台安全组添加相应的端口才行)    

3. 用 Navicat 或其他管理工具进行连接:

   

 至此,安装MySQL已完成

 本人习惯安装好就清理安装包:rm -rf /usr/local/mysql

此方式安装默认已经开启了开机自启动

查看是否开机自启动命令:service mysqld status,如上图所示即已开启了

可以自己试一下重启Linux,再连接MySQL验证一下

六、安全设置

安全着想

1.建议更改默认的3306端口

2.将my.cnf配置文件权限设置为所有者可读可执行,组用户/其他用户可读

3.将自动添加的mysql用户设置禁止shell登录

1. 更改MySQL默认端口

   先停掉mysql:systemctl stop mysqld

   编辑修改my.cnf配置文件:vi /etc/my.cnf

   将其中的 port 项改为你想更改的数值,Esc + :wq 保存退出

   

   防火墙移除3306端口:firewall-cmd --zone=public --remove-port=3306/tcp --permanent

   开放新端口:firewall-cmd --zone=public --add-port=3307/tcp --permanent

   重启生效:firewall-cmd --reload

   

   启动MySQL:systemctl start mysqld

   失败了,改默认端口要禁用selinux:vi /etc/selinux/config

   将 SELINUX=enforcing 中的 enforcing 改为 disabled,Esc + :wq 保存退出

   

   立即关闭:setenforce 0

   再次启动MySQL:systemctl start mysqld成功

   

   用管理工具连接成功。

   

2.将my.cnf配置文件权限设置为所有者可读可执行,组用户/其他用户可读

   执行命令:chmod 644 /etc/my.cnf

   

3.将自动添加的mysql用户设置禁止shell登录

   命令:usermod -s /sbin/nologin mysql

   查看:cat /etc/passwd,如下图所示即可

   

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40019326/article/details/131577598

智能推荐

Eclipse中配置WebMagic(已配置好Maven)_使用eclipse搭建webmagic工程-程序员宅基地

文章浏览阅读364次。1.WebMagicWebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。2.在Eclipse中配置WebMagic1.首先需要下载WebMagic的压缩包官网地址为:WebMagic官网最新版本为:WebMagic-0.7.3,找到对应版本,打开下载界面,注意,下载要选择Source code(zip)版本,随便下载到哪里都可以;2.下载好的压缩包需要解压,此时解压到的位置即为后续新建的Eclipse的project位置,比如我的Ecli_使用eclipse搭建webmagic工程

linux启动mysql_linux如何启动mysql服务_linux启动mysql服务命令是什么-系统城-程序员宅基地

文章浏览阅读1.9k次。mysql数据库是一种开放源代码的关系型数据库管理系统,有很多朋友都在使用。一些在linux系统上安装了mysql数据库的朋友,却不知道该如何对mysql数据库进行配置。那么linux该如何启动mysql服务呢?接下来小编就给大家带来linux启动mysql服务的命令教程。具体步骤如下:1、首先,我们需要修改mysql的配置文件,一般文件存放在/etc下面,文件名为my.cnf。2、对于mysql..._linux中 mysql 启动服务命令

php实现在线oj,详解OJ(Online Judge)中PHP代码的提交方法及要点-程序员宅基地

文章浏览阅读537次。详解OJ(Online Judge)中PHP代码的提交方法及要点Introduction of How to submit PHP code to Online Judge SystemsIntroduction of How to commit submission in PHP to Online Judge Systems在目前常用的在线oj中,codeforces、spoj、uva、zoj..._while(fscanf(stdin, "%d %d", $a, $b) == 2)

java快捷键调字体_设置MyEclipse编码、补全快捷键、字体大小-程序员宅基地

文章浏览阅读534次。一、设置MyEclipse编码(1)修改工作空间的编码方式:Window-->Preferences-->General-->Workspace-->Text file encoding(2)修改一类文件的编码方式:Window-->Preferences-->General-->content Types-->修改default Encoding(..._java修改快捷缩写内容

解析蓝牙原理_蓝牙原理图详解-程序员宅基地

文章浏览阅读1.4w次,点赞19次,收藏76次。1.前言市面上关于Android的技术书籍很多,几乎每本书也都会涉及到蓝牙开发,但均是上层应用级别的,而且篇幅也普遍短小。对于手机行业的开发者,要进行蓝牙模块的维护,就必须从Android系统底层,至少框架层开始,了解蓝牙的结构和代码实现原理。这方面的文档、网上的各个论坛的相关资料却少之又少。分析原因,大概因为虽然蓝牙协议是完整的,但是并没有具体的实现。蓝牙芯片公司只负责提供最底层的API_蓝牙原理图详解

从未在一起更让人遗憾_“从未在一起和最终没有在一起哪个更遗憾”-程序员宅基地

文章浏览阅读7.7k次。图/源于网络文/曲尚菇凉1.今天早上出门去逛街,在那家冰雪融城店里等待冰淇淋的时候,听到旁边两个女生在讨论很久之前的一期《奇葩说》。那期节目主持人给的辩论题是“从未在一起和最终没有在一起哪个更遗憾”,旁边其中一个女生说,她记得当时印象最深的是有个女孩子说了这样一句话。她说:“如果我喜欢一个人呢,我就从第一眼到最后一眼,把这个人爱够,把我的感觉用光,我只希望那些年让我成长的人是他,之后的那些年他喝过..._从未在一起更遗憾

随便推点

Spring Cloud Alibaba 介绍_sprngcloud alba-程序员宅基地

文章浏览阅读175次。Spring Cloud Alibaba 介绍Sping体系Spring 以 Bean(对象) 为中心,提供 IOC、AOP 等功能。Spring Boot 以 Application(应用) 为中心,提供自动配置、监控等功能。Spring Cloud 以 Service(服务) 为中心,提供服务的注册与发现、服务的调用与负载均衡等功能。Sping Cloud介绍官方介绍​ Tools for building common patterns in distributed systems_sprngcloud alba

测试 数据类型的一些测试点和经验_基础字段的测试点-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏21次。我这里是根据之前在测试数据类项目过程中的一些总结经验和掉过个坑,记录一下,可以给其他人做个参考,没什么高深的东西,但是如果不注意这些细节点,后期也许会陷入无尽的扯皮当中。1 需求实现的准确度根据产品需求文档描述发现不明确不详细的或者存在歧义的地方一定要确认,例如数据表中的一些字段,与开发和产品确认一遍,如有第三方相关的,要和第三方确认,数据类项目需要的是细心,哪怕数据库中的一个字段如果没有提前对清楚,后期再重新补充,会投入更大的精力。2 数据的合理性根据业务场景/常识推理,提..._基础字段的测试点

一文看懂:行业分析怎么做?_码工小熊-程序员宅基地

文章浏览阅读491次。大家好,我是爱学习的小xiong熊妹。在工作和面试中,很多小伙伴会遇到“对XX行业进行分析”的要求。一听“行业分析”四个字,好多人会觉得特别高大上,不知道该怎么做。今天给大家一个懒人攻略,小伙伴们可以快速上手哦。一、什么是行业?在做数据分析的时候,“行业”两个字,一般指的是:围绕一个商品,从生产到销售相关的全部企业。以化妆品为例,站在消费者角度,就是简简单单的从商店里买了一支唇膏回去。可站在行业角度,从生产到销售,有相当多的企业在参与工作(如下图)在行业中,每个企业常常扮._码工小熊

LLaMA 简介:一个基础的、650 亿参数的大型语言模型_llma-程序员宅基地

文章浏览阅读1.6w次,点赞2次,收藏2次。还需要做更多的研究来解决大型语言模型中的偏见、有毒评论和幻觉的风险。我们在数万亿个令牌上训练我们的模型,并表明可以仅使用公开可用的数据集来训练最先进的模型,而无需诉诸专有和不可访问的数据集。在大型语言模型空间中训练像 LLaMA 这样的小型基础模型是可取的,因为它需要更少的计算能力和资源来测试新方法、验证他人的工作和探索新的用例。作为 Meta 对开放科学承诺的一部分,今天我们公开发布 LLaMA(大型语言模型元 AI),这是一种最先进的基础大型语言模型,旨在帮助研究人员推进他们在 AI 子领域的工作。_llma

强化学习在制造业领域的应用:智能制造的未来-程序员宅基地

文章浏览阅读223次,点赞3次,收藏5次。1.背景介绍制造业是国家经济发展的重要引擎,其产能和质量对于国家经济的稳定和发展具有重要意义。随着工业技术的不断发展,制造业的生产方式也不断发生变化。传统的制造业通常依赖于人工操作和手工艺,这种方式的缺点是低效率、低产量和不稳定的质量。随着信息化、智能化和网络化等新技术的出现,制造业开始向智能制造迈出了第一步。智能制造的核心是通过大数据、人工智能、计算机视觉等技术,实现制造过程的智能化、自动化...

ansible--安装与使用_pip安装ansible-程序员宅基地

文章浏览阅读938次。系列文章目录文章目录系列文章目录 前言 一、ansible是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言菜鸟一只,刚开始使用,仅作以后参考使用。边学习,边记录,介绍一下最基础的使用,可能会有理解不到位的地方,可以共同交流,废话不多说,走起。一、ansible 简介?ansible是自动化运维工具的一种,基于Python开发,可以实现批量系统配置,批量程序部署,批量运行命令,ansible是基于模块工作的,它本身没有批量部署的能力,真正.._pip安装ansible

推荐文章

热门文章

相关标签