Linux系统部署MySQL MariaDB并进行简单的操作步骤

作者:袖梨 2026-07-05

环境规划

服务器版本

NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"

关闭防火墙

systemctl stop firewalldsystemctl status firewalld● 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)

关闭SElinux

直接在/root目录输入以下命令

setenforce 0

在/etc/selinux/config中设置selinux为disabled 

# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disabled  #改为disabled# SELINUXTYPE= can take one of three values:#     targeted - Targeted processes are protected,#     minimum - Modification of targeted policy. Only selected processes are protected. #     mls - Multi Level Security protection.SELINUXTYPE=targeted

阿里云源+epel源

yum repolist
已加载插件:fastestmirrorDetermining fastest mirrors * base: mirrors.aliyun.com * epel: d2lzkl7pfhq30w.cloudfront.net * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com源标识                                   源名称                                                                 状态!base/7/x86_64                           CentOS-7 - Base - mirrors.aliyun.com                                   10,072!epel/x86_64                             Extra Packages for Enterprise Linux 7 - x86_64                         13,791!extras/7/x86_64                         CentOS-7 - Extras - mirrors.aliyun.com                                    526!updates/7/x86_64                        CentOS-7 - Updates - mirrors.aliyun.com                                 6,173repolist: 30,562

如果没有epel源通过一下命令安装

yum -y install epel-release

安装mysql(mariadb)

1.制作mariadb源

cd /etc/yum.repos.d/ # 进入目录vim mariadb.repo     # 编辑源文件

编辑内容如下

[mariadb]name=MariaDB# baseurl=https://mirror.mariadb.org/yum/10.5/centos7-amd64baseurl=https://mirror.mariadb.org/yum/10.11.17/rhel7-amd64/gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

2.安装mysql(mariadb)

# 使用yum进行安装yum -y  install MariaDB-server MariaDB-client# 以下是安装完成的状态已加载插件:fastestmirror, prioritiesLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: d2lzkl7pfhq30w.cloudfront.net * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com10201 packages excluded due to repository priority protections软件包 MariaDB-server-10.11.9-1.el7.centos.x86_64 已安装并且是最新版本软件包 MariaDB-client-10.11.9-1.el7.centos.x86_64 已安装并且是最新版本无须任何处理

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

3.启动mysql(mariadb)

systemctl start mariadb #启动服务systemctl enable mariadb #设置开机启动systemctl restart mariadb #重新启动

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

使用ss查看是否启动

ss -taulanp | grep mariadb

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

mysql(mariadb)停止命令

systemctl stop mariadb #停止MariaDB

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

mysql(mariadb)设置

登录mysql

直接输入mysql或者输入mysql -uroot -p登录

方式一:mysql直接登录

输入mysql 直接进入不用输入初始密码

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

方式二:输入输入mysql -uroot -p进行登录

输入mysql -uroot -p进行登录 —— 初始密码为1

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

修改 MySQL root 密码的方法

方法一:通过 MySQL 命令行修改

登录 MySQL 服务器后执行以下命令:

use mysql;update user set authentication_string=password('新密码') where user='root';flush privileges;exit;

重新登录验证:

mysql -u root -p

方法二:使用 mysqladmin 工具修改

在 Linux 终端执行:

mysqladmin -u root -p password '新密码'

注意事项

  • MySQL 5.7+ 版本使用 authentication_string 字段存储密码
  • 修改密码后必须执行 flush privileges 使更改生效
  • 密码应设置为强密码,避免使用简单密码如'123456'
  • 生产环境建议定期修改密码并做好备份

密码策略建议

  • 启用 validate_password 插件加强密码复杂度
  • 定期轮换密码(建议每90天)
  • 不同环境使用不同密码
  • 避免在脚本中明文存储密码

设置utf8字符集

1.先登录mysql输入s查看查看初始状态

MariaDB [(none)]> s--------------mysql  Ver 15.1 Distrib 10.11.9-MariaDB, for Linux (x86_64) using readline 5.1Connection id:          4Current database:Current user:           root@localhostSSL:                    Not in useCurrent pager:          stdoutUsing outfile:          ''Using delimiter:        ;Server:                 MariaDBServer version:         10.11.9-MariaDB MariaDB ServerProtocol version:       10Connection:             Localhost via UNIX socketServer characterset:    latin1Db     characterset:    latin1Client characterset:    utf8mb3Conn.  characterset:    utf8mb3UNIX socket:            /var/lib/mysql/mysql.sockUptime:                 2 min 42 secThreads: 1  Questions: 7  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.043--------------

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

2.退出mysql(mariadb)

MariaDB [(none)]> quit;Bye

3.编辑文件/etc/my.cnf

vim /etc/my.cnf

加入配置

[mysqld]character-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect = 'SET NAMES utf8mb4'skip-character-set-client-handshake[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

4.重启mariadb(mysql)

 systemctl restart mariadb

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

5.登录mysql,输入s查看

MariaDB [(none)]> s--------------mysql  Ver 15.1 Distrib 10.11.9-MariaDB, for Linux (x86_64) using readline 5.1Connection id:          3Current database:Current user:           root@localhostSSL:                    Not in useCurrent pager:          stdoutUsing outfile:          ''Using delimiter:        ;Server:                 MariaDBServer version:         10.11.9-MariaDB MariaDB ServerProtocol version:       10Connection:             Localhost via UNIX socketServer characterset:    utf8mb4Db     characterset:    utf8mb4Client characterset:    utf8mb4Conn.  characterset:    utf8mb4UNIX socket:            /var/lib/mysql/mysql.sockUptime:                 56 secThreads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.071--------------

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

mysql基础命令

库和表及查询操作

1.查看有那些库

show databases;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

2.切换或选择要操作的数据库

use mysql;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

3.查看表

show tables;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

4.查看表结构

方式一

describe user; --简写desc user;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

方式二

show create table userG;

        desc和show create table 都是用来查看表结构的但侧重点不通、使用场景等不同。

         DESC 适合快速浏览字段的基础信息,SHOW CREATE TABLE 适合获取完整的建表语句和所有底层细节。

5.确认当前所处的数据库

select database();

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

库和表及用户创建授权的基础操作

1.创建数据库

create database 库名;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

2.创建数据表

先切换选择创建好的数据库

use auth;

再进行数据库的创建

创建users表

create table users(    user_name char(16) not null,       -- 创建用户名字段    user_passwd char(48) default '',     -- 创建用户密码字段    primary key (user_name));          -- 设置主键

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

创建yonghu表

create table yonghu(    name char(10), -- 创建用户名字段    passwd char(10), -- 创建用户密码字段    primary key (name)); -- 设置主键

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

3.插入数据

insert into users values('冷莫溪','123.com'); 

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

使用select查看是否插入

select * from users;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

4.用户的基本操作

(1)创建用户

create user lengmx identified by '123456';

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

(2)查询用户

方式一:使用select命令查询

select user,host,password from mysql.user;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

方式二:使用show grants查询

show grants for 'lengmx'@'%';

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

(3)用户授权

授予权力,例如select

grant select on auth.* to 'lengmx'@'%';

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

使用show进行查询

show grants for 'lengmx'@'%';

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

(4)撤销用户授权

revoke select on auth.* from lengmx;show grants for 'lengmx'@'%';

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

mysql备份与恢复

mysqldump 基础功能

mysqldump 是 MySQL 官方提供的逻辑备份工具,通过生成标准 SQL 语句文件实现数据库结构和数据的导出。支持单库、多库、单表或全库备份,默认输出到标准输出,需通过重定向保存为文件。

备份操作

1.在CentOS7.9中创建备份目录

mkdir -pv /opt/mysql_bak

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

2.备份单个数据库

把之前创建的数据库auth备份到/opt/mysql_bak/ mysql_bak中

mysqldump -uroot -p auth > /opt/mysql_bak/auth_db.sql

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

验证备份文件:

使用wc和cat进行查看

wc -l < /opt/mysql_bak/auth_db.sqlcat /opt/mysql_bak/auth_db.sql

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

3.备份特定数据表

把之前创建的数据表user备份到/opt/mysql_bak/mysql_bak中

mysqldump -uroot -p auth users > /opt/mysql_bak/users_bak.sql

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

验证命令与上面数据库备份相同。

4.全库备份

mysqldump -uroot -p --all-databases > /opt/mysql_bak/alldb.sql

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

5.查看数据库实际占用空间

du -sh /var/lib/mysql/

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

数据恢复操作

1.进入目标数据库

mysql -uroot -p
use auth;show tables;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

2.删除测试表

DROP TABLE users;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

查看删除后的表是否还在

show tables;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

3.从备份恢复表

进入备份目录cd /opt/mysql_bak/,使用之前备份特定数据库的文件,然后恢复表  

之前备份的命令进行改写(mysqldump换成mysql, > 换成 <)

mysql -uroot -p auth < /opt/mysql_bak/users_bak.sql;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

验证恢复:

SHOW TABLES;SELECT * FROM users;

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

关键注意事项

  • 备份时使用 > 重定向输出,恢复时使用 < 重定向输入
  • 恢复操作需确保目标数据库已存在(空库亦可)
  • 全库备份包含系统库,恢复时可能需特殊权限
  • 大表备份建议添加 --single-transaction 参数避免锁表

常用参数扩展

  • --no-data 仅备份结构
  • --add-drop-table 在创建表前添加删除语句
  • --skip-lock-tables 跳过锁表(可能影响一致性)
  • --where 条件导出部分数据

备份文件可通过压缩减少空间占用:

mysqldump -uroot -p dbname | gzip > backup.sql.gz

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

Linux系统部署MySQL(mariadb)并进行简单的操作步骤

总结 

相关文章

精彩推荐