Linux系统部署MySQL(mariadb)并进行简单的操作步骤
环境规划
服务器版本
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 firewalld
systemctl 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
已加载插件:fastestmirror Determining 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,173 repolist: 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-amd64 baseurl=https://mirror.mariadb.org/yum/10.11.17/rhel7-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

2.安装mysql(mariadb)
# 使用yum进行安装 yum -y install MariaDB-server MariaDB-client # 以下是安装完成的状态 已加载插件:fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: d2lzkl7pfhq30w.cloudfront.net * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 10201 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 已安装并且是最新版本 无须任何处理

3.启动mysql(mariadb)
systemctl start mariadb #启动服务 systemctl enable mariadb #设置开机启动 systemctl restart mariadb #重新启动

使用ss查看是否启动
ss -taulanp | grep mariadb

mysql(mariadb)停止命令
systemctl stop mariadb #停止MariaDB

mysql(mariadb)设置
登录mysql
直接输入mysql或者输入mysql -uroot -p登录
方式一:mysql直接登录
输入mysql 直接进入不用输入初始密码

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

修改 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.1 Connection id: 4 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 10.11.9-MariaDB MariaDB Server Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: utf8mb3 Conn. characterset: utf8mb3 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 2 min 42 sec Threads: 1 Questions: 7 Slow queries: 0 Opens: 17 Open tables: 10 Queries per second avg: 0.043 --------------

2.退出mysql(mariadb)
MariaDB [(none)]> quit; Bye
3.编辑文件/etc/my.cnf
vim /etc/my.cnf
加入配置
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' skip-character-set-client-handshake [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4

4.重启mariadb(mysql)
systemctl restart mariadb
![]()
5.登录mysql,输入\s查看
MariaDB [(none)]> \s -------------- mysql Ver 15.1 Distrib 10.11.9-MariaDB, for Linux (x86_64) using readline 5.1 Connection id: 3 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 10.11.9-MariaDB MariaDB Server Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 56 sec Threads: 1 Questions: 4 Slow queries: 0 Opens: 17 Open tables: 10 Queries per second avg: 0.071 --------------

mysql基础命令
库和表及查询操作
1.查看有那些库
show databases;

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

3.查看表
show tables;

4.查看表结构
方式一
describe user; --简写desc user;

方式二
show create table user\G;

desc和show create table 都是用来查看表结构的但侧重点不通、使用场景等不同。
DESC 适合快速浏览字段的基础信息,SHOW CREATE TABLE 适合获取完整的建表语句和所有底层细节。
5.确认当前所处的数据库
select database();

库和表及用户创建授权的基础操作
1.创建数据库
create database 库名;

2.创建数据表
先切换选择创建好的数据库
use auth;
再进行数据库的创建
创建users表
create table users(
user_name char(16) not null, -- 创建用户名字段
user_passwd char(48) default '', -- 创建用户密码字段
primary key (user_name)); -- 设置主键

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

3.插入数据
insert into users values('冷莫溪','123.com'); 
使用select查看是否插入
select * from users;

4.用户的基本操作
(1)创建用户
create user lengmx identified by '123456';

(2)查询用户
方式一:使用select命令查询
select user,host,password from mysql.user;

方式二:使用show grants查询
show grants for 'lengmx'@'%';

(3)用户授权
授予权力,例如select
grant select on auth.* to 'lengmx'@'%';

使用show进行查询
show grants for 'lengmx'@'%';

(4)撤销用户授权
revoke select on auth.* from lengmx; show grants for 'lengmx'@'%';

mysql备份与恢复
mysqldump 基础功能
mysqldump 是 MySQL 官方提供的逻辑备份工具,通过生成标准 SQL 语句文件实现数据库结构和数据的导出。支持单库、多库、单表或全库备份,默认输出到标准输出,需通过重定向保存为文件。
备份操作
1.在CentOS7.9中创建备份目录
mkdir -pv /opt/mysql_bak
![]()
2.备份单个数据库
把之前创建的数据库auth备份到/opt/mysql_bak/ mysql_bak中
mysqldump -uroot -p auth > /opt/mysql_bak/auth_db.sql

验证备份文件:
使用wc和cat进行查看
wc -l < /opt/mysql_bak/auth_db.sql cat /opt/mysql_bak/auth_db.sql


3.备份特定数据表
把之前创建的数据表user备份到/opt/mysql_bak/mysql_bak中
mysqldump -uroot -p auth users > /opt/mysql_bak/users_bak.sql
![]()
验证命令与上面数据库备份相同。
4.全库备份
mysqldump -uroot -p --all-databases > /opt/mysql_bak/alldb.sql
![]()
5.查看数据库实际占用空间
du -sh /var/lib/mysql/

数据恢复操作
1.进入目标数据库
mysql -uroot -p
use auth; show tables;


2.删除测试表
DROP TABLE users;

查看删除后的表是否还在
show tables;

3.从备份恢复表
进入备份目录cd /opt/mysql_bak/,使用之前备份特定数据库的文件,然后恢复表
之前备份的命令进行改写(mysqldump换成mysql, > 换成 <)
mysql -uroot -p auth < /opt/mysql_bak/users_bak.sql;

验证恢复:
SHOW TABLES; SELECT * FROM users;

关键注意事项
- 备份时使用
>重定向输出,恢复时使用<重定向输入 - 恢复操作需确保目标数据库已存在(空库亦可)
- 全库备份包含系统库,恢复时可能需特殊权限
- 大表备份建议添加
--single-transaction参数避免锁表
常用参数扩展
--no-data仅备份结构--add-drop-table在创建表前添加删除语句--skip-lock-tables跳过锁表(可能影响一致性)--where条件导出部分数据
备份文件可通过压缩减少空间占用:
mysqldump -uroot -p dbname | gzip > backup.sql.gz


总结
到此这篇关于Linux系统部署MySQL(mariadb)并进行简单的操作步骤的文章就介绍到这了,更多相关Linux部署MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Mysql 5.6 "隐式转换"导致的索引失效和数据不准确的问题
这篇文章主要介绍了Mysql 5.6 “隐式转换”导致的索引失效和数据不准确的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12
MySQL null与not null和null与空值''''''''的区别详解
这篇文章主要介绍了MySQL null与not null和null与空值''的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-11-11


最新评论