Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Linux部署MySQL mariadb

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

作者:冷莫溪

MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,这篇文章主要介绍了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 '新密码'

注意事项

密码策略建议

设置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;

关键注意事项

常用参数扩展

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

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

总结 

到此这篇关于Linux系统部署MySQL(mariadb)并进行简单的操作步骤的文章就介绍到这了,更多相关Linux部署MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文