Linux系統(tǒng)部署MySQL(mariadb)并進(jìn)行簡單的操作步驟
環(huán)境規(guī)劃
服務(wù)器版本
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"
關(guān)閉防火墻
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)關(guān)閉SElinux
直接在/root目錄輸入以下命令
setenforce 0
在/etc/selinux/config中設(shè)置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 源標(biāo)識 源名稱 狀態(tài) !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/ # 進(jìn)入目錄 vim mariadb.repo # 編輯源文件
編輯內(nèi)容如下
[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進(jìn)行安裝 yum -y install MariaDB-server MariaDB-client # 以下是安裝完成的狀態(tài) 已加載插件: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.啟動(dòng)mysql(mariadb)
systemctl start mariadb #啟動(dòng)服務(wù) systemctl enable mariadb #設(shè)置開機(jī)啟動(dòng) systemctl restart mariadb #重新啟動(dòng)

使用ss查看是否啟動(dòng)
ss -taulanp | grep mariadb

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

mysql(mariadb)設(shè)置
登錄mysql
直接輸入mysql或者輸入mysql -uroot -p登錄
方式一:mysql直接登錄
輸入mysql 直接進(jìn)入不用輸入初始密碼

方式二:輸入輸入mysql -uroot -p進(jìn)行登錄
輸入mysql -uroot -p進(jìn)行登錄 —— 初始密碼為1

修改 MySQL root 密碼的方法
方法一:通過 MySQL 命令行修改
登錄 MySQL 服務(wù)器后執(zhí)行以下命令:
use mysql;
update user set authentication_string=password('新密碼') where user='root';
flush privileges;
exit;
重新登錄驗(yàn)證:
mysql -u root -p
方法二:使用 mysqladmin 工具修改
在 Linux 終端執(zhí)行:
mysqladmin -u root -p password '新密碼'
注意事項(xiàng)
- MySQL 5.7+ 版本使用 authentication_string 字段存儲密碼
- 修改密碼后必須執(zhí)行 flush privileges 使更改生效
- 密碼應(yīng)設(shè)置為強(qiáng)密碼,避免使用簡單密碼如'123456'
- 生產(chǎn)環(huán)境建議定期修改密碼并做好備份
密碼策略建議
- 啟用 validate_password 插件加強(qiáng)密碼復(fù)雜度
- 定期輪換密碼(建議每90天)
- 不同環(huán)境使用不同密碼
- 避免在腳本中明文存儲密碼
設(shè)置utf8字符集
1.先登錄mysql輸入\s查看查看初始狀態(tài)
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基礎(chǔ)命令
庫和表及查詢操作
1.查看有那些庫
show databases;

2.切換或選擇要操作的數(shù)據(jù)庫
use mysql;

3.查看表
show tables;

4.查看表結(jié)構(gòu)
方式一
describe user; --簡寫desc user;

方式二
show create table user\G;

desc和show create table 都是用來查看表結(jié)構(gòu)的但側(cè)重點(diǎn)不通、使用場景等不同。
DESC 適合快速瀏覽字段的基礎(chǔ)信息,SHOW CREATE TABLE 適合獲取完整的建表語句和所有底層細(xì)節(jié)。
5.確認(rèn)當(dāng)前所處的數(shù)據(jù)庫
select database();

庫和表及用戶創(chuàng)建授權(quán)的基礎(chǔ)操作
1.創(chuàng)建數(shù)據(jù)庫
create database 庫名;

2.創(chuàng)建數(shù)據(jù)表
先切換選擇創(chuàng)建好的數(shù)據(jù)庫
use auth;
再進(jìn)行數(shù)據(jù)庫的創(chuàng)建
創(chuàng)建users表
create table users(
user_name char(16) not null, -- 創(chuàng)建用戶名字段
user_passwd char(48) default '', -- 創(chuàng)建用戶密碼字段
primary key (user_name)); -- 設(shè)置主鍵

創(chuàng)建yonghu表
create table yonghu(
name char(10), -- 創(chuàng)建用戶名字段
passwd char(10), -- 創(chuàng)建用戶密碼字段
primary key (name)); -- 設(shè)置主鍵

3.插入數(shù)據(jù)
insert into users values('冷莫溪','123.com'); 
使用select查看是否插入
select * from users;

4.用戶的基本操作
(1)創(chuàng)建用戶
create user lengmx identified by '123456';

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

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

(3)用戶授權(quán)
授予權(quán)力,例如select
grant select on auth.* to 'lengmx'@'%';

使用show進(jìn)行查詢
show grants for 'lengmx'@'%';

(4)撤銷用戶授權(quán)
revoke select on auth.* from lengmx; show grants for 'lengmx'@'%';

mysql備份與恢復(fù)
mysqldump 基礎(chǔ)功能
mysqldump 是 MySQL 官方提供的邏輯備份工具,通過生成標(biāo)準(zhǔn) SQL 語句文件實(shí)現(xiàn)數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)的導(dǎo)出。支持單庫、多庫、單表或全庫備份,默認(rèn)輸出到標(biāo)準(zhǔn)輸出,需通過重定向保存為文件。
備份操作
1.在CentOS7.9中創(chuàng)建備份目錄
mkdir -pv /opt/mysql_bak
![]()
2.備份單個(gè)數(shù)據(jù)庫
把之前創(chuàng)建的數(shù)據(jù)庫auth備份到/opt/mysql_bak/ mysql_bak中
mysqldump -uroot -p auth > /opt/mysql_bak/auth_db.sql

驗(yàn)證備份文件:
使用wc和cat進(jìn)行查看
wc -l < /opt/mysql_bak/auth_db.sql cat /opt/mysql_bak/auth_db.sql


3.備份特定數(shù)據(jù)表
把之前創(chuàng)建的數(shù)據(jù)表user備份到/opt/mysql_bak/mysql_bak中
mysqldump -uroot -p auth users > /opt/mysql_bak/users_bak.sql
![]()
驗(yàn)證命令與上面數(shù)據(jù)庫備份相同。
4.全庫備份
mysqldump -uroot -p --all-databases > /opt/mysql_bak/alldb.sql
![]()
5.查看數(shù)據(jù)庫實(shí)際占用空間
du -sh /var/lib/mysql/

數(shù)據(jù)恢復(fù)操作
1.進(jìn)入目標(biāo)數(shù)據(jù)庫
mysql -uroot -p
use auth; show tables;


2.刪除測試表
DROP TABLE users;

查看刪除后的表是否還在
show tables;

3.從備份恢復(fù)表
進(jìn)入備份目錄cd /opt/mysql_bak/,使用之前備份特定數(shù)據(jù)庫的文件,然后恢復(fù)表
之前備份的命令進(jìn)行改寫(mysqldump換成mysql, > 換成 <)
mysql -uroot -p auth < /opt/mysql_bak/users_bak.sql;

驗(yàn)證恢復(fù):
SHOW TABLES; SELECT * FROM users;

關(guān)鍵注意事項(xiàng)
- 備份時(shí)使用
>重定向輸出,恢復(fù)時(shí)使用<重定向輸入 - 恢復(fù)操作需確保目標(biāo)數(shù)據(jù)庫已存在(空庫亦可)
- 全庫備份包含系統(tǒng)庫,恢復(fù)時(shí)可能需特殊權(quán)限
- 大表備份建議添加
--single-transaction參數(shù)避免鎖表
常用參數(shù)擴(kuò)展
--no-data僅備份結(jié)構(gòu)--add-drop-table在創(chuàng)建表前添加刪除語句--skip-lock-tables跳過鎖表(可能影響一致性)--where條件導(dǎo)出部分?jǐn)?shù)據(jù)
備份文件可通過壓縮減少空間占用:
mysqldump -uroot -p dbname | gzip > backup.sql.gz


總結(jié)
到此這篇關(guān)于Linux系統(tǒng)部署MySQL(mariadb)并進(jìn)行簡單的操作步驟的文章就介紹到這了,更多相關(guān)Linux部署MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中GROUP_CONCAT函數(shù)用法和核心細(xì)節(jié)(按日期分組拼接銷售產(chǎn)品經(jīng)典案例)
本文詳細(xì)介紹了MySQL的GROUP_CONCAT()函數(shù)的用法和核心細(xì)節(jié),包括函數(shù)定義、語法格式、常用修飾符(DISTINCT、ORDERBY、SEPARATOR)以及注意事項(xiàng),感興趣的朋友跟隨小編一起看看吧2026-01-01
MySQL比較運(yùn)算符使用詳解及注意事項(xiàng)
這篇文章主要給大家介紹了關(guān)于MySQL比較運(yùn)算符使用詳解及注意事項(xiàng)的相關(guān)資料,Mysql可以通過運(yùn)算符來對表中數(shù)據(jù)進(jìn)行運(yùn)算,比如通過出生日期求年齡等,需要的朋友可以參考下2024-01-01
Linux下MySQL安裝配置 MySQL配置參數(shù)詳解
Linux下MySQL安裝配置 MySQL配置參數(shù)詳解,在linux下配置mysql的朋友可以參考下。2011-07-07
MySQL表的增刪改查及查詢表中數(shù)據(jù)的三種方式(入門必掌握)
本文講解SQL的DML(增刪改查)和DQL(查詢)操作,涵蓋創(chuàng)建student表、數(shù)據(jù)插入、更新、刪除及查詢方法如條件篩選、排序、分頁和別名使用,通過案例給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-07-07
從數(shù)據(jù)庫中取出最近三十天的數(shù)據(jù)并生成柱狀圖
從數(shù)據(jù)庫中取出最近三十天的數(shù)據(jù)并生成柱狀圖的代碼,需要的朋友可以參考下。2011-05-05
關(guān)于k8s環(huán)境部署mysql主從的問題
這篇文章主要介紹了k8s環(huán)境部署mysql主從的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
連接MySQL出現(xiàn)Host is not allowed to con
這篇文章主要給大家介紹了連接MySQL出現(xiàn)Host is not allowed to connect to this MySQL server 解決方法,文中有詳細(xì)的解決步驟,需要的朋友可以參考下2023-08-08

