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. NX二次开发-OLE/COM向EXCEL表格中插入图片

    今晚有一个兄弟问我怎么往EXCEL里插入图片(加工程序单中需要插入图片),这个我之前也没弄过,回复了他一句不知道,后来刚刚干完游戏吃完鸡,就去VC++的书上翻了翻,还真的被我翻到了.VC++的方法往E ...

  2. GitHub 万星推荐:黑客成长技术清单

    GitHub 万星推荐:黑客成长技术清单 导语:如果你需要一些安全入门引导,“Awesome Hacking”无疑是最佳选择之一. 最近两天,在reddit安全板块和Twitter上有个GitHub项 ...

  3. 关于类中的参数类型和return返回值

    基础有些忘了,现在重新巩固一下 先定义一个Person类 class Person(): def __init__(self,name,age,height): self.name=name, sel ...

  4. 测试常用——linux 基础命令

    测试常用 的 linux 基础命令 1,查看服务器日志vi 查看文件(查找关键字:exception/exception  :  从上往下找,按n查找下一个关键字,按shift+n查找上一个关键字?e ...

  5. jeecg接口开发及权限实现原理

    接口开发使用的框架 jeecg本身是基于 Spring MVC 框架搭建的,因此,使用 Spring MVC 框架的 RESTful API 功能来进行接口开发就是顺理成章的事了. 接口的拦截与鉴权 ...

  6. JS设置浏览器缓存,以及常用函数整理

    //设置缓存 function set_cache(key,value){ if(key=='') return false; localStorage.setItem(key, value); } ...

  7. CSS标准的书写顺序

  8. SpringCloud广告系统随想

    广告系统需要两个方面:一个广告投放系统,一个是广告检索系统. 两个系统针对的人群不同: 1.广告投放系统针对的是广告主,他们出资进行广告的投放,将广告的一些数据投放到系统中. 2.广告检索系统针对的是 ...

  9. win10无法设置移动热点的一种解决办法

    我的笔记本网卡为:Intel(R) Centrino(R) Wireless-N 2230 最近发现win10自带的移动热点无法启动了,一直显示无法设置热点 参考网上的教程,例如http://jing ...

  10. php导出csv并保存在服务器,返回csv的文件路径

    <?php namespace app\common\controller; use think\Controller; use think\Db; class Csv extends Cont ...