002 ---- MySQL 体系结构与管理

1、MySQL 程序运行的原理

1.1 mysql 结构

1

1.2 一条SQL语句的连接过程

连接层:

1、提供链接协议:tcp/ip、socket

2、提供验证:用户、密码、IP、socket

3、提供专用链接线程:接受用户SQL、返回结果

 

1.3 表的物理存储结构

myisam: user.frm user.myd, user.myi

innodb: user.ibd、user.frm

存储列相关信息:frm

存储数据行+索引:ibd

1.4 表的表空间、段、区、页

页:最小的存储单元、默认16K

区: 64个连续的页:共1M

段:一个表就是一个段,包含一个或多个区

 

2、 基础管理

用户、权限管理

用户名@'白名单'
白名单支持的方式?
wordpress@'10.0.0.%'    
wordpress@'%'
wordpress@'10.0.0.200'
wordpress@'localhost'
wordpress@'db02'
wordpress@'10.0.0.5%'
wordpress@'10.0.0.0/255.255.254.0'

管理操作:

create user xiaopan@‘192.168.1.%’ identified by '123';

desc mysql.user;

select user,host,authentication_string from mysql.user;

alter user 'xiaopan'@'192.168.1.%' identified by '123456';

drop user 'xiaopan'@'192.168.1.%';

 

权限管理:

grant all on *.* to 'wordpress'@'%' identified by 'wordpress';

flush privileges;

ALL 权限包括:

select、insert update、drop 、delete、create 、reload 、shutdown、process、file 、index、alter、show database、showtable等等

提示: 8.0 在grant 命令添加新特性

新建用户和授权分开了,必须先创建用户在授权即:

create user ‘haha'@'192.168.1.%'  identified by '123';

grant all  on  *.*   to 'haha'@'192.168.1.%';

show grants for 'haha'@'192.168.1.%';

回收权限:

revoke delete on app.* from app@’10.0.0.%‘;

本地管理员用户密码忘记:

mysql_safe --skip-grant-tables --skip-networking &

alter user root@'localhost'  identified by '111111';

flsh privileges;

5、多实例的应用

5.1 准备多个目录

mkdir /data/330{7,8,9}/data -p

5.2 准备配置文件

cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/app/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF

cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/app/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF

cat > /data/3309/my.cnf <<EOF
[mysqld]
basedir=/app/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF

5.3 如果/etc/目录下有my.cnf 文件需要把该文件移走

mv /etc/my.cnf /etc/my.cnf.bak

5.4 初始化三套数据 

mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/app/mysql --user=mysql  

mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/app/mysql --user=mysql

5.5 多实例管理

cd /etc/systemd/system
cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service

vim mysqld3307.service
ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf
vim mysqld3308.service
ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
ExecStart=/app/mysql/bin/mysqld  --defaults-file=/data/3309/my.cnf

5.6 授权

chown -R mysql.mysql /data/

 

5.7  把/etc/目录下的my.cnf 文件移动回来

mv /etc/my.cnf.bak /etc/my.cnf

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值