1.用户管理

1.用户的作用:
登录;管理相对应的库表

2.定义
定义用户名和白名单
all@'10.0.0.%'

命名用户名时,最好不要太长,要和业务相关

白名单类型:
user@'10.0.0.56'
user@'%'
user@'10.0.0.%'   255.255.255.0   24位
user@'10.0.0.%/255.255.254.0'     23位
user@'10.0.0.5%'    50-59
user@'localhost'  本地

2.用户的相关命令

创建用户
#创建一个oldguo的用户,该用户允许10.0.0.%网段的访问,密码123
create user oldguo@'10.0.0.%' identified by '123';

查询用户
#查询数据库中所有的用户
select user,host from mysql.user;

查询用户的密码
select user,host,authentication_string from mysql.user;

修改用户密码
alter user oldguo@'10.0.0.%' identified by '123456';

删除用户
drop user oldguo@'10.0.0.%'

在8.0版本之前,可以在授权时创建用户,也就是一条命令创建用户并授权,但是在8.0之后,只能是先创建用户在授权。
grant all on *.* to workpress@'%' identified '123'    8.0之后不好使了

3.权限管理

1.MySQL权限列表
查看权限列表: show privileges;

2.授权和回收权限

GRANT 权限 ON 权限作用范围 TO 用户 IDENTIFIED BY '123';

权限范围:
*.*       ===》 一般是管理员会设置的方法,所有库下的所有表
oldguo.*  ===>    一般是业务用户会设置的方法,某个库下的所有表
oldguo.t1 ===>    一般是业务用户会设置的方法,某个库下的某张表

3.企业授权案例
(1)授权一个管理员用户oldguo,可以从10网段任意地址登录连接管理数据库
GRANT all ON *.* TO oldguo@'10.0.0.%' identified by '123456' with grant option;

(2)授权一个业务用户app,可以从10网段地址访问app库的所有的表
GRANT select,update,insert,delete ON app.* app@'10.0.0.%' IDENTIFIED BY '123456';

(3)授权一个开发用户dev,可以对dev库进行业务的开发

4.查看用户的权限信息
show grant for app@'10.0.0.%';

5.回收权限
reboke 权限 on 库 from 用户;
reboke delete,drop on app.* from app@'10.0.0.%';

注意:数据库的权限并不能通过覆盖式删除命令,数据库授权式相加的,像删除权限,必须执行删除命令。

4.root 管理员密码忘记或被篡改如何处理

--skip-grant-tables    #解除用户验证
--skip-networking      #禁止tcp连接

1.首先,正常关闭数据库
systemctl stop mysqld

2.启动数据库时加上以上两个参数,使用mysql_safe 启动,并放入后台(类使用Linux系统的单用户模式)
mysql_safe --skip-grant-tables --skip-networking &

3.使用mysql登录数据库
mysql

4.加载授权表
flush privileges;

5.修改数据库登录密码
alter user root@'localhost' identified by '123456';

6.重启数据库到正常模式
systemctl restart mysqld

7.验证数据库密码
mysql -uroot -p123456

5.MySQL的连接管理

1.自带客户端工具
mysql 主要是用来连接用,参数:
    -u    用户名
    -p    密码
    -h    ip
    -P    端口
    -S    socket位置
    -e    外部执行命令,免交互
    <    导入

例子:
(1)TCP连接远程登陆
mysql -uoldguo -p123456 -h 10.0.0.51 -P 3306

(2)socket 连接方式
mysql -uoldguo -p123456 -S /tmp/mysql.sock

(3)免交互,执行命令
mysql -uoldguo -p123456 -e 'show processlist;'

(4)导入数据库
mysql -uroot -p < t100w.sql
数据库内部命令
source /root/world.sql

验证是本地连接还是远程连接
show processlist;

当我们登录MySQL时,既有tcp,又有socket,默认tcp登录

mysqladmin
修改密码
mysqladmin -uroot -p123456 password 123

关闭数据库
mysqladmin -uroot -p123 shutdown

mysqldump

2.第三方开发工具
sqlyog
navicat
workbench    比较重

3.应用程序连接
php-fpm
pip3 install mysql

6.MySQL的启动关闭

数据库初始化完成之后,却启动不了,日志里面没有报错信息,可能是权限不对,可以使用mysqld 前台启动
systemctl ------> mysql.server start ----> mysql_safe -----> mysqld

1. MySQL初始化配置方法
源码安装  初始化配置文件  命令行启动时定制

优先级 命令行启动时定制 > 初始化配置文件 > 源码安装

当我们想测试暂时性测试时,临时性维护,可以采用命令行模式

2.初始化配置文件
查看mysqld 启动时自动加载的配置文件,建议一个mysql实例一个配置文件
mysqld --help --verbose | grep my.cnf

默认mysqld会加载所有的配置文件

3.配置文件书写格式
[root@db01 data_3306]# cat /etc/my.cnf
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

标签项  ====> [mysqld]
服务器端 [server]: [mysqld],[mysqld_safe]  ====> 影响到MySQL启动
客户端 [clinet] : [mysql] ,[mysqldump]    ====> 影响本地客户端程序

配置项  ====> key=value
4. 自定制初始化配置文件设置
vim /opt/a.cnf
############################
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/a.sock
############################

启动数据库
mysqld --defaults-file=/opt/a.cnf &

连接数据库
mysql -S /tmp/a.sock

7.多实例环境的规划和配置

在分布式架构中应用广泛

多实例端口分别为
3307 3308 3309

1. 端口和目录
mkdir -p /data/mysql/data_{3307,3308,3309}

2. 配置文件准备

cat > /data/mysql/my3307.cnf <<EOF
[mysqld]
user=mysql
port=3307
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3307
server_id=7
socket=/tmp/mysql3307.sock
EOF
cat > /data/mysql/my3308.cnf <<EOF
[mysqld]
user=mysql
port=3308
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3308
server_id=8
socket=/tmp/mysql3308.sock
EOF
cat > /data/mysql/my3309.cnf <<EOF
[mysqld]
user=mysql
port=3309
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3309
server_id=9
socket=/tmp/mysql3309.sock
EOF

3. 授权
chown -R mysql.mysql /data

4.初始化数据
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3307
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3308
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3309

5.启动多实例
mysqld --defaults-file=/data/mysql/my3307.cnf &
mysqld --defaults-file=/data/mysql/my3308.cnf &
mysqld --defaults-file=/data/mysql/my3309.cnf &
netstat -tulnp

6. 使用 systemd 管理多实例
cat >/etc/systemd/system/mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/mysql/my3307.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/mysql/my3308.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/mysql/my3309.cnf
LimitNOFILE = 5000
EOF

7.测试启动

pkill mysqld
systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309

MySQL基础管理的更多相关文章

  1. 服务管理之mysql基础

    目录 mysql基础 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 ...

  2. MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

    最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...

  3. MySQL基础知识:启动管理和账号管理

    整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...

  4. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  5. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  6. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  7. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL日志管理

    MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...

随机推荐

  1. 工程师技术(一):启用SELinux保护、自定义用户环境、配置IPv6地址、配置聚合连接、配置firewalld防火墙

    一.启用SELinux保护 目标: 本例要求为虚拟机 server0.desktop0 配置SELinux: 确保 SELinux 处于强制启用模式 在每次重新开机后,此设置必须仍然有效 方案: SE ...

  2. WebBug靶场基础篇 — 02

    本篇以第一人称记录这个关卡的第 1-5 关. 由于我记录的过程有点偏向于思考,所以截图截的多 = =!所以文章有点长... 下午一觉醒来,已经 4 点多了,然后开电脑,在虚拟机里,铺了铺靶场,但是毕竟 ...

  3. C语言新手写扫雷攻略3

    界面绘制好后,雷数也布置了,接下来就是游戏的运行过程了,今天先不说具体过程,再来看看需要用到的辅助函数 先是简单的画红旗,鼠标右键的功能是画红旗,至此我们都是在使用函数自己绘图,效率是低,但有助于理解 ...

  4. ubuntu安装mysql 并对外暴露3306端口

    安装 sudo apt-get install mysql-client mysql-server vi /etc/mysql/mysql.conf.d/mysqld.cnf bind 127注掉 m ...

  5. 框架-.NET:Spring.Net

    ylbtech-框架-Spring.Net:Spring.Net Spring.NET为建立企业级应用提供了一套轻量级的解决方案.通过Spring.NET,我们可以用统一且透明的方式来配置应用程序.S ...

  6. JVM 源码分析之 javaagent 原理完全解读

    转载:https://infoq.cn/article/javaagent-illustrated 本文重点讲述 javaagent 的具体实现,因为它面向的是我们 Java 程序员,而且 agent ...

  7. 拾遗:btrfs

    #扫描 btrfs 文件系统btrfs device scan btrfs device scan /dev/sda #创建子卷或快照 btrfs subvolume create /mnt/btrf ...

  8. 专题:『systemd』

    [COMMAND] Systemd Daemons: systemd networkd journald logind "user session" Systemd units: ...

  9. java IO 类概述表

    列举常用的类方便查看,温故知新! byte input byte output character input character output Basic InputStream OutputStr ...

  10. 前端(十一)—— JavaScript基础:JS存在的位置、JS变量定义、调试方式、JS数据类型、运算符

    JS存在的位置.JS变量定义.调试方式.JS数据类型.运算符 一.JS语言介绍 1.概念 浏览器脚本语言 可以编写运行在浏览器上的代码程序 属于解释性.弱语言类型编程语言 2.组成 ES语法:ECMA ...