记录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

智能推荐

微信小程序request请求封装,session封装,会话超时处理_微信小程序 请求封装 超时-程序员宅基地

文章浏览阅读544次。微信小程序request请求封装,session封装,会话超时处理直接上代码,代码中写了很详细的注释// 同时发送异步代码的次数let ajaxTimes = 0;export const request = (params, method) => { let header = { ...params.header, "Cookie": getApp().globalData.cookieStr, 'loc':'ajax' };//头部,小程序的头部是默认的 _微信小程序 请求封装 超时

mysql5.5.53 varchar字段不能插入汉字_varchar插不进去中文-程序员宅基地

文章浏览阅读2.4k次,点赞5次,收藏6次。创建了一个//blog/分类表,如下:CREATE TABLE b_category (id int(11) NOT NULL AUTO_INCREMENT,c_name varchar(50) NOT NULL,c_sort int(10) unsigned DEFAULT ‘0’ COMMENT ‘ÅÅÐò’,c_parent_id int(10) unsigned DEFAULT ..._varchar插不进去中文

RecyclerView用法(2列显示)_android recyclerview 两列布局-程序员宅基地

文章浏览阅读2.4k次。有个自定义回调好好看看 private OnRecyclerItemClickListener mOnItemClickListener; public void setRecyclerItemClickListener(OnRecyclerItemClickListener listener) { mOnItemClickListener = listener; } public interface OnRecyclerItemClickListener_android recyclerview 两列布局

flowable bpmn用户手册 V6.5-程序员宅基地

文章浏览阅读204次。网上搜过一堆要不就是会员,要不就是需要花金币才能下载的,后来搜到shareniu有免费分享,还不用科学上网,这里分享给想学习的同学。flowable bpmn用户手册 V6.5。_flowable bpmn用户手册

是指使用计算机来加工管理,()是指使用计算机来加工、管理与操作任何形式的数据资料。...-程序员宅基地

文章浏览阅读239次。We have created a special rate that will let you travel actually thousands of miles on your vacation at no extra cost.In most of our US and Canadian offices, we'll rent you cars of high quality for se..._什么指用计算机对非类型的数据进行收集加工

tensorflow linux多卡训练_用 Windows 电脑训练深度学习模型?超详细配置教程来了...-程序员宅基地

文章浏览阅读155次。点击上方蓝色小字,关注并星标,更多干货,第一时间送达转载自公众号:AI有道虽然大多数深度学习模型都是在 Linux 系统上训练的,但 Windows 也是一个非常重要的系统,也可能是很多机器学习初学者更为熟悉的系统。要在 Windows 上开发模型,首先当然是配置开发环境。Kaggle Master 及机器学习实践者 Abhinand 立足于自己的实践,给出了一种简单易行的 Window..._windows11如何基于linux进行模型训练

随便推点

自定义注解+POI实现流式数据导入,支持各数据类型转换_poi 流式处理原理-程序员宅基地

文章浏览阅读7.1k次。自定义注解+POI实现流式数据导入,支持各数据类型转换_poi 流式处理原理

计算机组成原理【2022-10-24】_指令可以表示为二进制代码串-程序员宅基地

文章浏览阅读2.8k次,点赞2次,收藏5次。计算机组成原理是计算机的核心,主要包括计算机基本组件的构造、组织方式和设计思想,以及基本运算的操作原理。_指令可以表示为二进制代码串

js判断ipad pro设备-程序员宅基地

文章浏览阅读1.3k次。在网上找了一些方法判断ios,安卓,ipad都能实现,但是判断ipad pro却不行,甚至用第三方插件来判断设备,ipad pro竟然被归为Pc//判断放在ipad pro设备里全为falsevar u = navigator.userAgent; iPad: u.indexOf('iPad') > -1, //是否iPad ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端所以只能通过多步判断n_js判断ipad pro

ffmpeg硬编解码 Inter QSV_intel 视频硬编码-程序员宅基地

文章浏览阅读549次。ffmpeg硬编解码 Inter QSV_intel 视频硬编码

通过实操案例介绍了SQL优化过程中的关键环节,以及相应的优化策略:索引优化、查询参数优化、表结构优化、存储过程优化、触发器优化等 SQL Query Optimization Made Easy-程序员宅基地

文章浏览阅读1k次。大型数据库系统中处理复杂查询语句,是一个十分繁重的任务。这项工作需要根据查询需求、索引选择、数据分布、查询语言特性等多种因素综合分析设计出高效运行的查询语句。本文主要通过实操案例介绍了SQL优化过程中的关键环节,以及相应的优化策略。如对查询进行分类、基本的查询语句优化方法及工具,熟悉索引优化、查询参数优化、表结构优化、存储过程优化、触发器优化等;对SQL性能调优经验丰富,具有一定的经验积累。

IOS 图片阴影,圆角等处理-程序员宅基地

文章浏览阅读42次。 一直以来,为IOS添加图片的特殊效果都是通过跟美工的配合,比如,要加阴影,就从美工那边获得一张阴影效果图,在界面上画两个UIImageView,将阴影放在下面,图像放上上面,错开一定角度。有比如想做圆角效果,就画一张跟背景一个颜色的图片,中间透明,盖在原图上方。看起来很拙劣,效果还是不错的,直到愚钝的我发现IOS已经帮我们准备好了一切。其实就是几行代码的事情:首先不要忘记,必须..._ios开发 willdisplaycell圆角阴影

推荐文章

热门文章

相关标签