代码编织梦想

        MySQL的安装方式除了常规的源码编译安装外,最常用的还包括YUM方式安装和二进制方式安装。二进制安装方式中,包括rpm版本以及glibc版本。rpm版本就是在特定Linux版本下编译的,如果你的Linux版本不匹配,就可以安装。如下载CentOS7系统所对应编译好的rpm包安装即可。另外一种二进制安装包是基于特定glibc版本编译的,这里主要讲解基于glibc方式安装MySQL。

1. 基础环境准备

如果采用CentOS 7 minimal系统的安装,在使用前需要安装一些基础软件包工具

[root@node2 ~]# yum -y install gcc vim wget net-tools lrzsz

安装MySQL依赖的软件包

[root@node2 ~]# yum -y install libaio

创建运行MySQL程序的用户

[root@node2 ~]# useradd -M -s /sbin/nologin mysql

关闭selinux和防火墙

[root@node2 ~]# getenforce 
Disabled
[root@node2 ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@node2 ~]# 

2. 二进制安装

二进制安装的版本采用跟上面编译安装的版本一样MySQL 5.7.28。首先需要下载该软件包或提前上传,然后再解压进行配置

[root@node2 ~]# tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz  //解包
[root@node2 ~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql  //移动到/usr/local目录下并进行重命名
[root@node2 ~]# mkdir /usr/local/mysql/data   //创建文件夹
[root@node2 ~]# chown -R mysql.mysql /usr/local/mysql/data/    //更改宿主和宿主目录
[root@node2 ~]# cd /usr/local/mysql/bin/
[root@node2 bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
2024-03-02T06:13:59.194153Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-03-02T06:13:59.491263Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-03-02T06:13:59.555504Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-03-02T06:13:59.613151Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0f0c7bc6-d85c-11ee-9791-000c29f2ca28.
2024-03-02T06:13:59.614551Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-03-02T06:14:00.334898Z 0 [Warning] CA certificate ca.pem is self signed.
2024-03-02T06:14:00.655548Z 1 [Note] A temporary password is generated for root@localhost: yQ4K(--Zhq(2

3. 设定配置文件

MySQL的配置文件跟上面编译安装的配置文件类似

[root@node2 ~]# vim /etc/my.cnf

[mysqld]
[client]
socket=/usr/local/mysql/data/mysql.sock

[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address = 0.0.0.0
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=2048
character-set-server=utf8
default-storage-engine=INNODB

将MySQL的可执行文件写入环境变量中

[root@node2 ~]# echo "export PATH=$PATH:/usr/local/myql/bin" >> /etc/profile
[root@node2 ~]# . /etc/profile

4. 配置systemctl方式启动

将MySQL添加成为系统服务,通过使用systemctl来管理。在/usr/local/mysql/support-files目录下找到mysql.server文件,将其复制到/etc/rc.d/init.d目录下,改名为mysqld并赋予可执行权限

[root@node2 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@node2 ~]# chmod +x /etc/rc.d/init.d/mysqld

编辑生成mysql.service服务,通过systemctl方式来管理

[root@node2 ~]# vim /lib/systemd/system/mysqld.service 

[Unit]
Description=mysqld
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/init.d/mysqld start
ExecReload=/etc/rc.d/init.d/mysqld reload
ExecStop=/etc/rc.d/init.d/mysqld stop

[Install]
WantedBy=multi-user.target
[root@node2 ~]# systemctl daemon-reload         //重载服务
[root@node2 ~]# systemctl enable mysqld
[root@node2 ~]# systemctl start mysqld
[root@node2 ~]# netstat -anpt | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      9310/mysqld         
[root@node2 ~]#

最后再进行修改root密码即可

[root@node2 ~]# mysql -u root -p
Enter password:         //输入上面随机的root密码,然后修改密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.28

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password = password('ABCabc-123');        //单引号内为新密码
Query OK, 0 rows affected, 1 warning (0.01 sec)

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

mysql运维实战之备份和恢复(8.4)xtrabackup恢复全量备份-爱代码爱编程

作者:俊达 恢复全量备份大致可以分成以下几步:解压备份文件、prepare备份文件、将数据copy到目标实例相关目录、启动数据库实例。 解压文件 如果备份时使用了xbstream,需要先解压备份文件。 我们备份时使用了–

mysql深入——23-爱代码爱编程

主机内存只有100G,现在对一个200G的大表进行扫描,会不会把数据库的内存用完。 对大表做全表扫描对Sever层的影响 假设现对一个200G的InnoDB表db1,做一个全表扫描,当然要把扫描结果保存到客户端。 InnoDB的数据时保存在主键索引上的,所以全表扫描实际上是扫描表t的主键索引,最后返回给客户端。 返回的结果集并不是完整的,因为MyS

mysql 常用优化方式-爱代码爱编程

MySQL 常用优化方式 sql 书写顺序与执行顺序SQL设计优化使用索引避免索引失效分析慢查询合理使用子查询和临时表列相关使用 日常SQL优化场景limit语句隐式类型转换嵌套子查询混合排序查询重写

mysql 核心模块揭秘 | 07 期 | 二阶段提交 (1) prepare 阶段-爱代码爱编程

二阶段提交的 prepare 阶段,binlog 和 InnoDB 各自会有哪些动作? 本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。 1. 二阶段提交 二阶段提交,顾名思义,包含两

mysql——索引-爱代码爱编程

索引(重点) 什么是索引?索引是提升查询速度的一种数据结构 索引的优缺点 优点:使用索引可以加快数据的检索速度,这是创建索引的本质原因,通过创建唯一性索引,可以保证数据库中每一行数据的唯一性 缺点: 索引本身需要存储起来,消耗磁盘空间。在运行的时候,索引会被加载到内存里面,消耗内存空间。在增删改的时候,数据库还需要同步维护索引,引入额外的消耗

mysql——事务-爱代码爱编程

事务 2024 年 1 月字节后端实习面试:说说对 ACID 的理解? 什么是事务? 事务(Transaction)是数据库管理系统中一个执行单元(unit of work),它由一系列的操作(例如读取数据、插入、更新或删除数据等)组成,这些操作要么全部成功执行,要么全部回滚(撤销)到事务开始时的状态,以保持数据的一致性和完整性。 四个基本

hyperscan库接口的使用-爱代码爱编程

Hyperscan库的使用主要涉及到几个关键步骤:编译正则表达式、创建数据库、执行匹配操作以及处理匹配结果。下面我将详细介绍这些步骤中涉及的主要接口和它们的使用方法。 1. 编译正则表达式 在使用Hyperscan进行匹

为什么mysql中多表联查效率低,连接查询实现的原理是什么?-爱代码爱编程

MySQL中多表联查效率低的原因主要涉及到以下几个方面: 数据量大: 当多个表通过连接查询时,如果这些表的数据量很大,那么查询就需要处理更多的数据,这自然会降低查询效率。 连接操作复杂性: 连接查询需要对参与连接的每个