CentOS系统环境搭建(七)——Centos7安装MySQL

centos系统环境搭建专栏🔗点击跳转

坦诚地说,本文中百分之九十的内容都来自于该文章🔗Linux:CentOS7安装MySQL8(详),十分佩服大佬文章结构合理,文笔清晰,我曾经在这篇文章指导下成功安装mysql。今天,想把内容搬运写到此博客,方便查看。

Centos7安装MySQL

文章目录

  • Centos7安装MySQL
    • 1、安装工作
      • 1.1、卸载 MariaDB
        • 1.1.1、MariaDB
        • 1.1.2、卸载
      • 1.2、下载资源包
        • 1.2.1、官网下载
        • 1.2.2、wget 下载
      • 1.3、检查旧版本 MySQL
      • 1.4、解压安装
    • 2、配置工作
      • 2.1、基本设置
        • 2.1.1、文件夹重命名
        • 2.1.2、PATH 变量
        • 2.1.3、确认安装
      • 2.2、创建用户组、用户
      • 2.3、数据目录
    • 3、初始化 & 启动
      • 3.1、配置文件
      • 3.2、初始化
      • 3.3、启动 MySQL
        • 3.3.1、启动服务
        • 3.3.2、登录
      • 3.4、修改密码
    • 4、远程连接 MySQL
      • 4.1、创建远程连接用户
      • 4.2、远程连接 MySQL

1、安装工作

1.1、卸载 MariaDB

1.1.1、MariaDB

MySQL 的一个分支,主要由开源社区维护。

  1. CentOS 7+ 不再默认使用 MySQL 数据库,而是 MariaDB 数据库。
  2. 直接安装 MySQL 会与 MariaDB 的文件冲突。

安装 MySQL 之前,先卸载自带的 MariaDB。

1.1.2、卸载

查看版本:有则需要卸载。

rpm -qa|grep mariadb

卸载:复制文件名,执行以下指令。

rpm -e --nodeps 文件名

确认卸载

rpm -qa|grep mariadb

[root@VM-4-17-centos myredis]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@VM-4-17-centos myredis]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@VM-4-17-centos myredis]# rpm -qa|grep mariadb

1.2、下载资源包

将 MySQL 资源包放在 /usr/local/

1.2.1、官网下载

https://downloads.mysql.com/archives/community/

image-20230602152114671

1.2.2、wget 下载

/usr/local/ 下执行,下载资源包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

1.3、检查旧版本 MySQL

rpm -qa|grep mysql
  • 没有输出:说明当前系统没有安装 MySQL,开始安装。

  • 有输出:显示的 MySQL 不是想要的版本,则卸载。

停止服务

systemctl stop mysqld

卸载

rpm -e --nodeps mysql文件名

1.4、解压安装

解压:tar 指令。

# .tar.gz 后缀
tar -zxvf 文件名# .tar.xz 后缀
tar -Jxvf 文件名

解压完成/usr/local/ 下会生成 MySQL 文件夹。

2、配置工作

2.1、基本设置

2.1.1、文件夹重命名

重命名 MySQL 文件夹

mv 原文件夹名 mysql8

2.1.2、PATH 变量

vim /etc/profile

在最下面追加

export PATH=$PATH:/usr/local/mysql8/bin

重载环境变量

source /etc/profile

2.1.3、确认安装

查看版本

mysql --version

确定 MySQL 安装成功后,可删除压缩包。

rm -rf 压缩包名

2.2、创建用户组、用户

注:需要进入 /usr/local

创建用户组groupadd

groupadd mysql

创建用户useradd-r 创建系统用户,-g 指定用户组)

useradd -r -g mysql mysql

2.3、数据目录

创建目录

mkdir -p /data/mysql8_data

赋予权限

# 更改属主和数组
chown -R mysql:mysql /data/mysql8_data# 更改模式
chmod -R 750 /data/mysql8_data

3、初始化 & 启动

3.1、配置文件

/usr/local/etc/ 下创建 my.cnf 配置文件用于初始化 MySQL 数据库

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
# 客户端使用的端口号
port=3306
# 客户端连接的 socket 路径
socket=/tmp/mysql.sock
[mysqld]
# 服务端使用的端口号
port=3306
# 服务器 ID
server-id=3306
# MySQL 运行用户
user=mysql
# 日志时间系统时间
log_timestamps=SYSTEM
# 默认时区东八区
default-time_zone='+8:00'
# 服务器连接的 socket 路径
socket=/tmp/mysql.sock
# MySQL 安装目录
basedir=/usr/local/mysql8
# 数据存放目录
datadir=/data/mysql8_data/mysql
# 开启二进制日志功能
log-bin=/data/mysql8_data/mysql/mysql-bin
# InnoDB 数据文件存放目录
innodb_data_home_dir=/data/mysql8_data/mysql
# InnoDB 日志文件存放目录
innodb_log_group_home_dir=/data/mysql8_data/mysql
# MySQL 错误日志文件路径
log-error=/data/mysql8_data/mysql/mysql.log
# 存放 MySQL 进程 ID 的文件路径
pid-file=/data/mysql8_data/mysql/mysql.pid
# 表名大小写不敏感
lower_case_table_names=1
# 服务端字符集
character-set-server=utf8mb4
# 自动提交所有事务
autocommit=1
# 跳过排它锁定
skip-external-locking
# 键缓存大小
key_buffer_size=256M
# 允许的最大数据包大小
max_allowed_packet=1M
# 表缓存
table_open_cache=1024
# 排序缓存大小
sort_buffer_size=4M
# 网络缓冲区长度
net_buffer_length=8K
# 读取缓冲区大小
read_buffer_size=4M
# 随机读取缓冲区大小
read_rnd_buffer_size=512K
# MyISAM 排序缓冲区大小
myisam_sort_buffer_size=64M
# 线程缓存大小
thread_cache_size=128
# 临时表大小
tmp_table_size=128M
# 启用显式默认时间戳
explicit_defaults_for_timestamp=true
# 最大连接数
max_connections=500
# 连接错误最大数量
max_connect_errors=100
# 打开文件限制
open_files_limit=65535
# 二进制日志格式
binlog_format=mixed
# 二进制日志过期时间(秒)
binlog_expire_logs_seconds=864000
# 创建表时使用的默认存储引擎
default_storage_engine=InnoDB
# InnoDB 数据文件路径设置
innodb_data_file_path=ibdata1:10M:autoextend
# InnoDB 缓冲池大小
innodb_buffer_pool_size=1024M
# InnoDB 日志文件大小
innodb_log_file_size=256M
# InnoDB 日志缓冲区大小
innodb_log_buffer_size=8M
# InnoDB 每次提交时刷新日志
innodb_flush_log_at_trx_commit=1
# InnoDB 加锁等待超时时间(秒)
innodb_lock_wait_timeout=50
# 事务隔离级别为读已提交
transaction-isolation=READ-COMMITTED
[mysqldump]
# 快速导出数据
quick
# 允许的最大数据包大小
max_allowed_packet=16M
[myisamchk]
# 键缓存大小
key_buffer_size=256M
# 排序缓冲区大小
sort_buffer_size=4M
# 读取缓冲区大小
read_buffer=2M
# 写入缓冲区大小
write_buffer=2M
[mysqlhotcopy]
# 交互式超时时间
interactive-timeout

3.2、初始化

需要进入 /usr/local/mysql8/bin,若添加了 PATH 变量可忽略。

初始化命令:注意文件夹名称。

  • --defaults-file:指定配置文件(要放在–initialize 前面)
  • --user: 指定用户
  • --basedir:指定安装目录
  • --datadir:指定初始化数据目录
  • --intialize-insecure:初始化无密码(否则生成随机密码)
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

3.3、启动 MySQL

查看 MySQL 的 /bin 下是否包含 mysqld_safe用于后台安全启动 MySQL

3.3.1、启动服务

安全后台启动 MySQL

# 完整命令
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
# 若添加了PATH变量,可省略如下
mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

确认启动:第二条即 MySQL 服务。

ps -ef|grep mysql

3.3.2、登录

mysql -u root --skip-password

3.4、修改密码

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

设置密码永不过期(本地)

alter user 'root'@'localhost' password expire never;

刷新权限

FLUSH PRIVILEGES;

4、远程连接 MySQL

4.1、创建远程连接用户

选择 mysql 数据库,查看当前用户

USE mysql;

host 字段表示可访问当前数据库的主机,目前仅本地可访问。

SELECT user,host,plugin,authentication_string FROM user;

创建用户

CREATE user 'root'@'%';

设置首次密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

授权用户所有权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

设置密码永不过期(远程)

alter user 'root'@'%' password expire never;

刷新权限

FLUSH PRIVILEGES;

4.2、远程连接 MySQL

开放端口

  • 查看端口状态:no 表示未开启
firewall-cmd --query-port=3306/tcp
  • 永久开放端口
firewall-cmd --add-port=3306/tcp --permanent
  • 重启防火墙
systemctl restart firewalld

至于如何设置mysql开机自启动。请看专栏的下一篇文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/40363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kotlin 使用 View Binding

解决的问题: 《第一行代码——Android》第三版 郭霖 P277 视图绑定的问题 描述: kotlin-android-extensions 插件已经弃用 butter knife 已经弃用 解决办法 推荐使用 View Binding 来代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

踩坑---uni-app中@input 事件不生效

在开发的时候遇到这么一种情况,我们希望input输入框的值是范围是0-100或者保留两位小数之类的,当你输入时处理后的结果却不生效,但是试过很多办法发现都实现不了,最后是按照以下方法解决的,问题原因是uni-app会延时,导致输入的结果…

Go语言的主要优势

Go语言的主要优势包括: 1. 简洁和易学 Go语法简单明了,没有太多晦涩难懂的概念,上手容易,适合快速开发。 2. 强大的并发支持 利用goroutine和channel,可以非常方便地编写高效的并发程序。 3. 执行性能好 Go编译成机器码,执行性能接近C/C,比解释型语言更高效。 4. 内存管…

绝对值函数的可导性

绝对值函数的可导性 声明:下面截图来自《考研数学常考题型解题方法技巧归纳》

利用Figlet工具创建酷炫Linux Centos8服务器-登录欢迎界面-SHELL自动化编译安装代码

因为我们需要生成需要的特定字符,所以需要在当前服务器中安装Figlet,默认没有安装包的,其实如果我们也只要在一台环境中安装,然后需要什么字符只要复制到需要的服务器中,并不需要所有都安装。同样的,我们也可以利用此生成的字符用到脚本运行的开始起头部分,用ECHO分行标…

学习笔记十八:污点、容忍度

污点、容忍度 污点、容忍度管理节点污点把k8snode2当成是生产环境专用的,其他node是测试的给k8snode1也打上污点 污点、容忍度 给了节点选则的主动权,我们给节点打一个污点,不容忍的pod就运行不上来,污点就是定义在节点上的键值属…

使用python读Excel文件并写入另一个xls模版

效果如下: 原文件内容 转化后的内容 大致代码如下: 1. load_it.py #!/usr/bin/env python import re from datetime import datetime from io import BytesIO from pathlib import Path from typing import List, Unionfrom fastapi import HTTPExcep…

睿趣科技:抖音开网店现在做还来得及吗

随着社交媒体的迅速发展,抖音作为一款短视频平台,已经在年轻人中间取得了巨大的成功。而近年来,越来越多的人开始考虑在抖音上开设网店,以迎合这一潮流。那么,抖音开网店现在还来得及吗? 首先,要明确的是&…

一篇文章教会你搭建私人kindle图书馆,并内网穿透实现公网访问

搭建私人kindle图书馆,并内网穿透实现公网访问 在电子书风靡的时期,大部分人都购买了一本电子书,虽然这本电子书更多的时候是被搁置在储物架上吃灰,或者成为盖泡面的神器,但当亚马逊发布消息将放弃电子书在中国的服务…

Kubernetes部署Wordpress时碰到的两个问题解决

文章目录 小结问题1解决问题2解决参考 小结 在使用Kubernetes部署Wordpress时返回了两个问题: Function not implemented: AH00141: Could not initialize random number generator chown: changing ownership of .: Operation not permitted 对这个两个返回错误&#xff0…

利用Python隧道爬虫ip轻松构建全局爬虫网络

嘿,爬虫程序员们!你们有没有碰到过需要大规模数据爬取的情况?也许你们之前遇到过网站的反爬措施,卡住你们的进度。别担心,今天我来分享一个利用Python隧道爬虫ip实现的方法,帮助你们轻松搭建全局爬虫ip网络…

jmeter界面设置为中文

jmeter版本:5.6.2 找到jmeter下的bin目录,打开jmeter.properties 文件 第39行修改为 languagezh_CN去掉前面的#,以后打开就是中文界面了

IC设计仿真云架构

对于IC仿真来说,最重要的是要安全、可维护、高性能的的HPC环境环境。 那么云上如何搭建起一套完整的IC仿真云环境呢? 这种架构应该长什么样子? 桌面虚拟化基础架构 将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够…

RxJava 复刻简版之三,map 多次中转数据

案例代码:https://gitee.com/bobidali/lite-rx-java/commit/292e9227a5491f7ec6a07f395292ef8e6ff69290 RxJava 的调用第一步是封装了观察者接受了数据的处理,进一步就是使用 map 将数据操作传递给上下游 1、类似Observer.create 创建一个简单的观察者…

神经网络基础-神经网络补充概念-05-导数

概念 导数是微积分中的一个概念,用于描述函数在某一点的变化率。在数学中,函数的导数表示函数值随着自变量的微小变化而产生的变化量,即斜率或变化率。 假设有一个函数 f(x),其中 x 是自变量,y f(x) 是因变量。函数…

如何评价机械革命?

机械革命是在全球顶尖IT厂商蓝天、intel、nvidia、Microsoft等联手的打造下推出的中高端品牌。(零件组装) 机械革命研发实力雄厚,糟糕的外观设计和极致的游戏性能一样出名。图片皆来自于未来世界。

【0214】postgres后端进程session退出,如何通过日志分析其会话信息

文章目录 1. postgres进程session退出2. 开启日志记录postgres进程会话状态3. postgres进程会话结束,记录日志的实现原理1. postgres进程session退出 默认情况下,新建一个postgres后端进程会话(session),或是postgres进程正常/异常退出时,日志中没有很明显的记录用于说明…

嵌入式:ARM Day4

一、自己编写代码实现三盏灯点亮 源码: .text .global _start _start: 进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…

如何进行网络活动监控

组织的 IT 基础架构中的每个网络设备上都发生了大量活动,例如数据包传输、来自网络协议的消息、设备状态事件等。网络活动成为在检测到问题时识别网络瓶颈的面包屑,因此即使是最微小的网络活动也应受到监控,因为它直接影响整体网络性能、运行…

UI设计师个人工作总结范文精选

UI设计师个人工作总结范文(一) 在忙忙碌碌中,2019年又将过去了,在这一年当中,设计部无论是在运作模式、设计产值、还是人员结构,各方面的变化都比较大。 设计部的运作模式是从7月底开始进行调整的,以独立承包制的运营方…