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. noip2015 提高组 day1t1 神奇的幻方

    题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...

  2. python对具有宏excel的操作

    一.使用win32com库 安装pip install pypiwin32 import win32com.client #excel xlApp =win32com.client.DispatchE ...

  3. Openstack组件部署 — Netwotking service组件介绍与网络基本概念

    目录 目录 前文列表 Openstack Networking serivce 基本的Neutron概念 Neutron的抽象对象 网络networks 子网subnets 路由器routers 端口 ...

  4. JAVA学习之数组

    一.数组定义同一种类型数据的集合,其实数组就是一个容器数组定义格式:1.数据类型[] 变量名 = new 数据类型[数组长度] int[] arr = new int[5]; 2.数据类型[] 数组名 ...

  5. Netty 相关目录

    Netty 相关目录 Netty 源码学习--客户端流程分析 Netty 源码学习--服务端流程分析 Netty 源码分析--ChannelPipeline Netty 源码学习--EventLoop ...

  6. Ubuntu14.04搭建JSP与Servlet开发环境及其测试详解

    一,搭建JDK开发环境 1,在Java官网下载Jdk软件包,我的系统是64位Ubuntu14.04,所以选择jdk-8u25-linux-x64.tar.gz. 2,解压Jdk软件包 tar xvzf ...

  7. [已解决]报错This event loop is already running

    安装nest_asyncio pip install nest_asyncio 导入并调用 import nest_asyncio nest_asyncio.apply()

  8. python获取全部股票每日基本面指标,用于选股分析、报表展示等

    接口:daily_basic 更新时间:交易日每日15点-17点之间 描述:获取全部股票每日重要的基本面指标,可用于选股分析.报表展示等. 积分:用户需要至少300积分才可以调取,具体请参阅本文最下方 ...

  9. Docker搭建 oracle

    1-1.docker run -d -p 11521:1521 --name sf2_oracle11g 镜像ID #  -p:端口映射,此处映射主机端口 1-2.查看启动 docker logs - ...

  10. react-router v4 理解

    1.Router (1)最基础的路由器,必须有history属性 (2)BrowserRouter和HashRouter都是由Router组件扩展而来 2.BrowserRouter (1)Brows ...