2022-01-05 day64 mysql 用户登录

https://www.processon.com/view/link/61d5523407912973ef0c9076

https://www.processon.com/view/link/61d4003be401fd7a53e7aee2

https://www.processon.com/view/link/61d552161e08530666c06088

今日内容:

1.MySQL体系结构简单介绍 理解

2.连接管理 理解

3.配置管理  理解

4.用户管理  掌握

第1章 MySQL体系结构简单介绍

1.MySQL C/S结构 Clinet/Server

Clinet:

mysql命令

图形化工具

代码程序的mysql驱动

连接方式:

本地的socket文件直连

远程的IP+Port

2.mysqld核心程序工作原理

连接层:

- 接受用户连接请求

- 验证账号密码

- 连接线程

SQL处理层:

处理用户的SQL语句

数据处理层:

将SQL层执行的结果落地到磁盘上

第2章 MySQL启动关闭原理

1.myslqd_safe和mysqld

mysqld_safe作用:

1)官方提供的启动脚本最终会调用mysqld_safe命令脚本,然后mysqld_safe脚本又会调用mysqld主程序启动MySQL服务。

2)最终都是由mysqld启动,mysqld_safe可以看做是mysqld的守护进程。

3)mysqld_safe会启动并监视mysqld,如果mysqld发生意外错误可以重启服务。

4)mysqld_safe启动可以将mysqld的错误消息发送到数据目录中的host_name.err文件

5)可以读取的配置部分[mysqld],[server],[myslqd_safe], 为了兼容mysql_safe也会读取[safe_mysqld]中的配置

6)调用的mysqld是可以在[mysqld_safe]中用-mysqld, --mysqld-version指定

mysqld作用:

1).mysqld是mysql的核心程序,用于管理mysql的数据库文件以及用户的请求操作。

2).mysqld可以读取配置文件中的[mysqld]的部分

2.myslqd_safe和mysqld的应用场景

正常情况:

myslqd_safe

排错的时候:

如果启动失败并且不打日志,那么直接使用mysqld --defaults-file=/etc/my.cnf启动,此时会将报错打印到屏幕上

3.关闭myslq的正确姿势

脚本关闭:

/etc/init.d/mysqld stop

systemctl stop mysqld

命令关闭:

mysql -uroot -p123 -e "shutdown;"

kill系列:

kill pid

pkill mysql

killall mysql

第3章 MySQL配置管理

1.mysqld默认支持读取的配置文件路径

mysqld --help --verbose |grep my.cnf

/etc/my.cnf

/etc/mysql/my.cnf

/usr/local/mysql/etc/my.cnf

~/.my.cnf

2.默认配置优先级

  1 /etc/my.cnf

  2 /etc/mysql/my.cnf

  3 /usr/local/mysql/etc/my.cnf

  4 ~/.my.cnf

3.优先级之间的关系

如果多个配置文件参数一样,那么都一样

如果多个配置文件参数不一样,以最后读到的配置为准

如果前面的有,后面的没有,前面的也会读取生效

第4章 用户管理

1.用户的定义

Linux: 用户名+密码




MySQL: IP白名单+用户名+密码

举例:

root@'10.0.0.7'

root@'10.0.0.8'

安装数据库客户端



root@'10.0.0.%'


root@'%'

root@'localhost'


root@'127.0.0.1'




解释:

白名单地址@账号名

%表示是任意的IP

2.查看用户

select user,host from mysql.user;


3.创建用户

create user 账户名@'IP白名单';

create user linux7@'10.0.0.7';

create user linux7@'10.0.0.%';

create user linux7@'localhost';

create user linux7@'%';

4.远程连接

mysql -u账户 -p密码 -h服务的地址

刚刚创建还没有设置登录密码


5.创建用户密码

普通用户修改自己的密码: 需要知道自己当前的密码

set password=password('123456');


root用户修改其他用户密码: 不需要知道其他用户密码

alter user linux7@'10.0.0.%' identified by '123';


该用户没有密码



6.删除用户

drop user [email protected];

drop user linux7@'10.0.0.%';


7.创建用户的同时创建密码

create user linux7@'%' identified by '321';



create user linux7@'10.0.0.%' identified by '123456';

create user linux7@'10.0.0.7' identified by '123';

第5章 找回root密码

1.找回root密码的前提

只能在mysql服务器本机修改

2.停止MySQL服务

/etc/init.d/mysqld stop


3.启动时添加跳过授权表验证

mysqld_safe --skip-grant-tables --user=mysql


4.直接使用root登录

mysql -uroot


5.修改root密码

报错:

mysql> set password=password('admin');

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement


mysql> alter user root@'localhost' identified by 'admin';

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement


正确改法:

UPDATE mysql.user SET authentication_string=PASSWORD("admin") WHERE user='root'  and  host='localhost';


更新  库.表    设置          字段=加密后密码              条件  用户名    并且      地址

6.重启数据库

mysql> shutdown;


systemctl start mysqld


7.验证登录

mysql -uroot -padmin


你可能感兴趣的:(2022-01-05 day64 mysql 用户登录)