美文网首页
02-MySQL基础管理

02-MySQL基础管理

作者: UncleZ_strive | 来源:发表于2019-12-17 21:12 被阅读0次

1. 用户管理

1.作用

登录
管理对象

2.长成什么样?

1.用户名@'白名单'

  • 用户名:
    不要太长 , 和业务有关

  • 白名单?
    允许链接的网段
    常用:
    user@'10.0.0.%'
    user@'10.0.0.0/255.255.254.0'
    user@'10.0.0.5%' 50-59
    user@'localhost' 本地

3.用户管理
  • 创建用户:
    mysql> CREATE USER oldguo@'10.0.0.%' IDENTIFIED BY '123';
  • 查询用户:
    mysql> select user,host from mysql.user;
    mysql> select user,host,authentication_string from mysql.user;
  • 修改用户:
    mysql> alter user oldguo@'10.0.0.%' identified by '123456';
  • 删除用户:
    mysql> drop user oldguo@'10.0.0.%';

8.0+ 版本: 必须先创建用户再授权.
8.0以前: 可以grant 授权时自动创建用户.

2. 权限管理

1.MySQL权限列表

查看权限列表 mysql> show privileges;

2.授权和回收权限
  • 授权
    GRANT 权限 ON 权限作用范围 TO 用户 IDENTIFIED BY '123' with grant option;

权限作用范围 :
. ====> 一般是管理员会设置的方法
wordpress.* ====> 一般是业务用户会设置的方法
wordpress.t1 ====> 一般是业务用户户设置的方法

3.企业授权案例
  • 授权一个管理员用户wordpress,可以从10网段任意地址登录管理数据库
    GRANT ALL ON *.* TO wordpress@'10.0.0.%' IDENTIFIED BY '123' with grant option;
  • 授权一个业务用户app,可以从10网段地址访问app库的所有表
    grant select,update,insert,delete ON app.* TO app@'10.0.0.%' IDENTIFIED BY '123' ;
4.root管理员密码忘记或被篡改如何处理?
  • 关闭数据库,启动到"单用户"模式
[root@db01 data_3306]# systemctl stop mysqld
[root@db01 data_3306]# mysqld_safe  --skip-grant-tables  --skip-networking  &
  • 无密码登录MySQL
[root@db01 data_3306]# mysql
直接修改密码会报错
mysql> alter user root@'localhost' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

刷新MySQL的系统权限相关表
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
  • 重启数据库到正常模式
[root@db01 data_3306]# systemctl restart mysqld
5.查询用户权限
mysql> show grants for app@'10.0.0.%';
6.回收权限
mysql> revoke delete,drop on app.* from 'app'@'10.0.0.%';

3. MySQL的连接管理

1.自带客户端工具 mysql
-u  用户名 
-p  密码
-h  IP
-P  端口
-S  socket位置
-e  免交互
<   导入SQL脚本

例子:
(1) TCP连接串远程登录

mysql> grant all on *.* to oldguo@'10.0.0.%' identified by '123';
[root@db01 data_3306]# mysql -uroot -p -h 10.0.0.51 -P 3306

需要提前创建好远程用户

(2) Socket连接方式

mysql> grant all on *.* to oldguo@'localhost' identified by '123';
[root@db01 data_3306]# mysql -uoldguo -p -S /tmp/mysql.sock 
Enter password: 

需要提前创建好localhost用户

(3)如何验证一个用户是通过本地还是远程和登录的.

show processlist;

(4) 免交互执行命令

[root@db01 ~]# mysql -uroot -p -e "show processlist"

(5) 导入SQL脚本
在linux上执行
mysql -uroot -p123456 < t100w.sql
进入MySQL执行
source /root/world.sql

2.自带客户端工具 mysqladmin

(1) 修改密码
mysqladmin -uroot -p123456 password 123

(2) 关闭数据库
mysqladmin -uroot -p123 shutdown

3.第三方开发工具
sqlyog 
navicat
workbench
4.应用程序连接
php-mysql 
pip3 install mysql 
jar 
go 

4.MySQL的启动关闭

systemctl start mysqld
mysql.server start 
mysqld_safe
mysqld

5. MySQL的初始化配置

1.初始化配置方法

源码安装定制 < 初始化配置文件 < 命令行启动时定制

2.初始化配置文件

mysqld --help --verbose |grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

建议一个mysql实例一个配置文件

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.自定制初识化配置文件位置

mysqld --defaults-file=/opt/a.cnf &

6.多实例的规划和配置

分布式架构中应用广泛
1.创建存放数据的目录,并授权
mkdir -p /data/mysql/{data_3307,data_3308,data_3309}
chown -R mysql.mysql /data
2.编写my.cnf配置文件

[root@db01 ~]# cat /data/mysql/my3307.cnf 
[mysqld]
user=mysql
port=3307-------------------------------------------分布式修改不同端口
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3307-----------------------分布式修改不同数据存放目录
server_id=7-----------------------------------------分布式id不能相同
socket=/tmp/mysql3307.sock--------------------------分布式生成不同的socket文件

3.初始化数据

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

4.启动多实例

mysqld --defaults-file=/data/mysql/my3307.cnf &
mysqld --defaults-file=/data/mysql/my3308.cnf &
mysqld --defaults-file=/data/mysql/my3309.cnf &

5.使用systemctl管理多实例

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

使用systemctl启动

systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309

相关文章

  • 02-MySQL基础管理

    1. 用户管理 1.作用 登录管理对象 2.长成什么样? 1.用户名@'白名单' 用户名:不要太长 , 和业务有...

  • 02-MySQL的安装与配置

    title: 02-MySQL的安装与配置time: 2019/08/11tags:- Database- MyS...

  • 02-MySQL

    我去饿

  • 02-MySQL安装

    Step1 MySQL数据库的安装 Step2 验证安装 Step3 设置MySQL允许远程访问 编辑mysql配...

  • 02-MySQL(下)

    一、数据库操作 3.DQL 3.7分组查询 group by:分组查询 将字段中相同值归为一组having:...

  • 02-MySQL索引

    1.索引的作用 保持数据完整性 优化数据访问性能 改进表的连接(join)操作 对结果进行排序 简化聚合数据操作 ...

  • MYSQL SQL 语句

    基础sql语句 库管理 表管理 用户管理:

  • 时间宝后台使用说明(一)——基础管理篇

    时间宝管理平台一共分为四大模块: 1、基础管理 2、教务管理 3、财务管理 4、报表管理 本篇文章介绍基础管理部分...

  • 情绪管理

    情 绪 管 理 情绪到底是什么? 时间管理的基础是精力管理,精力管理的基础是体能,其次就是情绪管理。 关于情绪管理...

  • 如何做好计划管理

    导读: 1、计划管理是管理的基础 2、计划管理推动企业发展 3、如何保证计划的有效性 01 计划管理是管理的基础 ...

网友评论

      本文标题:02-MySQL基础管理

      本文链接:https://www.haomeiwen.com/subject/zcyenctx.html