Linux系統(tǒng)部署MySQL(mariadb)并進行簡單的操作步驟
環(huán)境規(guī)劃
服務器版本
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 源標識 源名稱 狀態(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/ # 進入目錄 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 # 以下是安裝完成的狀態(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.啟動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 服務器后執(zhí)行以下命令:
use mysql;
update user set authentication_string=password('新密碼') where user='root';
flush privileges;
exit;
重新登錄驗證:
mysql -u root -p
方法二:使用 mysqladmin 工具修改
在 Linux 終端執(zhí)行:
mysqladmin -u root -p password '新密碼'
注意事項
- MySQL 5.7+ 版本使用 authentication_string 字段存儲密碼
- 修改密碼后必須執(zhí)行 flush privileges 使更改生效
- 密碼應設置為強密碼,避免使用簡單密碼如'123456'
- 生產環(huán)境建議定期修改密碼并做好備份
密碼策略建議
- 啟用 validate_password 插件加強密碼復雜度
- 定期輪換密碼(建議每90天)
- 不同環(huán)境使用不同密碼
- 避免在腳本中明文存儲密碼
設置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基礎命令
庫和表及查詢操作
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 適合獲取完整的建表語句和所有底層細節(jié)。
5.確認當前所處的數據庫
select database();

庫和表及用戶創(chuàng)建授權的基礎操作
1.創(chuàng)建數據庫
create database 庫名;

2.創(chuàng)建數據表
先切換選擇創(chuàng)建好的數據庫
use auth;
再進行數據庫的創(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)); -- 設置主鍵

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

3.插入數據
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)用戶授權
授予權力,例如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 語句文件實現(xiàn)數據庫結構和數據的導出。支持單庫、多庫、單表或全庫備份,默認輸出到標準輸出,需通過重定向保存為文件。
備份操作
1.在CentOS7.9中創(chuàng)建備份目錄
mkdir -pv /opt/mysql_bak
![]()
2.備份單個數據庫
把之前創(chuàng)建的數據庫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.備份特定數據表
把之前創(chuàng)建的數據表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;

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


總結
到此這篇關于Linux系統(tǒng)部署MySQL(mariadb)并進行簡單的操作步驟的文章就介紹到這了,更多相關Linux部署MySQL內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL中GROUP_CONCAT函數用法和核心細節(jié)(按日期分組拼接銷售產品經典案例)
本文詳細介紹了MySQL的GROUP_CONCAT()函數的用法和核心細節(jié),包括函數定義、語法格式、常用修飾符(DISTINCT、ORDERBY、SEPARATOR)以及注意事項,感興趣的朋友跟隨小編一起看看吧2026-01-01
MySQL表的增刪改查及查詢表中數據的三種方式(入門必掌握)
本文講解SQL的DML(增刪改查)和DQL(查詢)操作,涵蓋創(chuàng)建student表、數據插入、更新、刪除及查詢方法如條件篩選、排序、分頁和別名使用,通過案例給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2025-07-07
連接MySQL出現(xiàn)Host is not allowed to con
這篇文章主要給大家介紹了連接MySQL出現(xiàn)Host is not allowed to connect to this MySQL server 解決方法,文中有詳細的解決步驟,需要的朋友可以參考下2023-08-08

