linux-MySQL的安装

linux-MySQL的安装

  • 前言
  • 一、安装MySQL
    • [1. 下载mysql8的rpm仓库](#1. 下载mysql8的rpm仓库)
    • [2. 安装mysql源的rpm包](#2. 安装mysql源的rpm包)
    • [3. 查找是否有可用的mysql源](#3. 查找是否有可用的mysql源)
    • [4. 安装mysql服务器](#4. 安装mysql服务器)
    • [5. 启动服务](#5. 启动服务)
  • 二、登录MySQL
    • [1. 查看临时密码](#1. 查看临时密码)
    • [2. 连接MySQL](#2. 连接MySQL)
    • [3. MySQL安装后的内容](#3. MySQL安装后的内容)
      • [1. 二进制文件:mysql](#1. 二进制文件:mysql)
      • [2. 数据文件](#2. 数据文件)
      • [3. 日志文件](#3. 日志文件)
      • [4. 配置文件](#4. 配置文件)

前言

MySQL 关系型数据库

Redis 非关系型数据库

Oracle 关系型数据库 -> 不开源、收费(贵)

MySQL数据库

开源:源代码开放(github),开发人员可以基于源代码进行二次修改,自己使用

MySQL由瑞典MySQL AB开发 -> 被Oracle公司收购

姐妹产品MariaDB


一、安装MySQL

基于rocky linux 9.4

卸载已经安装的数据库

检查安装的rpm包

rpm -qa |grep mysql

卸载安装的rpm包

rpm -e --nodeps <包名>

rm -rf /var/lib/mysql

1. 下载mysql8的rpm仓库

wget https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm

ll /etc/yum.repos.d/

总用量 32

-rw-r--r--. 1 root root 1142 8月 28 2023 epel-cisco-openh264.repo

-rw-r--r--. 1 root root 1453 8月 28 2023 epel.repo

-rw-r--r--. 1 root root 1552 8月 28 2023 epel-testing.repo

-rw-r--r--. 1 root root 6610 5月 1 2024 rocky-addons.repo

-rw-r--r--. 1 root root 1165 5月 1 2024 rocky-devel.repo

-rw-r--r--. 1 root root 2387 5月 1 2024 rocky-extras.repo

-rw-r--r--. 1 root root 3417 5月 1 2024 rocky.repo


2. 安装mysql源的rpm包

yum install mysql80-community-release-el9-4.noarch.rpm -y

root@clone \~\]# ll /etc/yum.repos.d/ 总用量 44 -rw-r--r--. 1 root root 1142 8月 28 2023 epel-cisco-openh264.repo -rw-r--r--. 1 root root 1453 8月 28 2023 epel.repo -rw-r--r--. 1 root root 1552 8月 28 2023 epel-testing.repo -rw-r--r-- 1 root root 2129 10月 24 2023 mysql-community-debuginfo.repo -rw-r--r-- 1 root root 1910 10月 24 2023 mysql-community.repo -rw-r--r-- 1 root root 1989 10月 24 2023 mysql-community-source.repo -rw-r--r--. 1 root root 6610 5月 1 2024 rocky-addons.repo -rw-r--r--. 1 root root 1165 5月 1 2024 rocky-devel.repo -rw-r--r--. 1 root root 2387 5月 1 2024 rocky-extras.repo -rw-r--r--. 1 root root 3417 5月 1 2024 rocky.repo


3. 查找是否有可用的mysql源

yum repolist enabled | grep mysql

mysql-connectors-community MySQL Connectors Community

mysql-tools-community MySQL Tools Community

mysql80-community MySQL 8.0 Community Server


4. 安装mysql服务器

yum install mysql-community-server -y


5. 启动服务

systemctl start mysqld

设置开机自启

systemctl enable mysqld

查看端口

netstat -tulnp|grep mysqld

ss -anplut|grep mysqld

tcp6 0 0 :::3308 ::: * LISTEN 841/mysqld

tcp6 0 0 :::33060 ::: * LISTEN 841/mysqld

losf -i:3306

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

mysqld 841 mysql 33u IPv6 42560 0t0 TCP *:mysql (LISTEN)

查看进程

ps aux|grep mysqld

mysql 841 3.5 10.8 1742080 402732 ? Ssl 15:29 0:06 /usr/sbin/mysqld

root 841 0.0 0.0 6632 2304 pts/0 S+ 15:32 0:00 grep --color=auto mysqld


二、登录MySQL

1. 查看临时密码

cat /var/log/mysqld.log |grep password

2025-06-27T02:02:36.054100Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <Zdp1AVzcmR&

使用临时密码登录

root@localhost \~\]# mysql -uroot -p Enter password: mysql\>

修改当前用户的密码(注意密码复杂度)

mysql> alter user user() identified by "设置复杂密码";

Query OK, 0 rows affected (0.02 sec)


2. 连接MySQL

帐号+密码+ip+端口 => 网络socket

mysql -uroot -h127.0.0.1 -P3306 -p

mysql -uroot -p

文件scoket: 实现一台电脑里不同进程之间的通信

mysql -uroot -S /var/lib/mysql/mysql.sock -p


3. MySQL安装后的内容

1. 二进制文件:mysql

ll /usr/sbin/mysql*

-rwxr-xr-x. 1 root root 64945536 3月 31 21:38 /usr/sbin/mysqld => mysql服务端

ll /usr/bin/mysql*

-rwxr-xr-x. 1 root root 7743824 3月 31 21:38 /usr/bin/mysql => mysql客户端

-rwxr-xr-x. 1 root root 7429800 3月 31 21:38 /usr/bin/mysqladmin

-rwxr-xr-x. 1 root root 7892432 3月 31 21:38 /usr/bin/mysqlbinlog


2. 数据文件

默认位置/var/lib/mysql

Mysql将数据库(目录)、表(文件)数据存在在这个目录下

系统数据库

mysql> show databases;

±-------------------+

| Database |

±-------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

±-------------------+

4 rows in set (0.01 sec)

  • information_schema: 信息数据库,存储了MySQL数据库各种数据对象的元数据信息
  • mysql: 用户帐户信息、权限、帮助、日志
  • performance_schema: 性能相关数据,查询执行情况,锁使用情况,内存使用情况,文件I/O等...
  • sys: 基于 performance_schema 的便捷视图,用于性能分析

3. 日志文件

  • 错误日志、常规日志(数据库启动、运行过程中出现错误常规信息,用来排错)
    /var/log/mysqld.log
  • 二进制日志(记录对数据库的更改操作,数据恢复和复制)
  • 查询日志(记录所有的SQL查询,审计)

4. 配置文件

/etc/my.cnf

mysqld\] =\> 配置服务端 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid \[mysql\] =\> 配置客户端

如何修改配置文件

  1. 创建目录

mkdir /data/mysql -p

因为mysql进程是用mysql用户启动并管理,所以/data/mysql目录需要写权限

chown mysql:mysql /data/mysql/ -R

  1. 修改数据目录

root@localhost performance_schema\]# cat /etc/my.cnf\|grep -v "#" \[mysqld

datadir=/data/mysql

socket=/var/lib/mysql/mysql.sock

端口号

port=3308

错误日志

log-error=/data/mysql/mysqld3308.err

pid-file=/var/run/mysqld/mysqld.pid

mysql

启用自动补全功能

auto-rehash

#自定义客户端提示符的格式,显示内容为:

\u:当前登录的用户名

\d:当前使用的数据库(若未选择数据库则显示 none)

\R:\m:当前时间(小时:分钟)

prompt=\u@\d \R:\m>

  1. 改了配置文件需要重启mysql服务

systemctl restart mysqld

启动服务失败分析

root@localhost \~\]# mysql -uroot -P3308 -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

启动服务失败查找线索:

1.看 log-error => /data/mysql/mysqld3308.err

2.journalctl -xe

临时关闭selinux

setenforce 0

配置永久关闭

root@localhost \~\]# vim /etc/selinux/config SELINUX=disabled 4. 验证