1.MySQL给root用户设置密码
[root@localhost ~]# mysqladmin -uroot -p password root
注意:回车时会先让输入原始密码,如果没有原始密码,再敲一次回车就可以了
2.登录MYSQL
[root@localhost ~]# mysql -u root -p
注意: 虽然在-p之后可以直接追加密码,但不要这样明文追加,回车之后再输入密码
3.查询用户基本信息(用户名=user+host,密码=authentication_string)
3306 [(none)]>select user,host,authentication_string from mysql.user;
4.mysqld程序结构
1.连接层作用:
a.提供连接协议:TCP/IP、 SOCKET
b.验证用户、密码、IP、SOCKET 是否正确
c.提供连接线程,接受用户SQL,返回结果
查询连接线程基本情况的命令
3306 [(none)]>show processlist; +----+------+-----------+------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+----------+------------------+ | 5 | root | localhost | NULL | Query | 0 | starting | show processlist | +----+------+-----------+------+---------+------+----------+------------------+ 1 row in set (0.00 sec)
2.SQL层
a.接收连接层的sql语句
b.验证语句的语法规则,是否满足SQL_MODE
c.判断SQL语句的类型(DDL,DQL,DML,DCL)
d.权限检查:用户对库和表有没有权限
e.解析器:进行SQL的预处理,产生执行计划
f.优化器:根据解析器得到的多种执行计划,进行判断,选择最优的执行计划
g.执行器:根据最有执行计划,执行SQL语句产生执行结果
h.提供查询缓存(默认没有开启)
i.提供日志记录(默认没有开启)
3.存储引擎层
将SQL执行结果,从磁盘上取数据,将16进制的磁盘数据通过SQL结构化,结构化成表,通过连接线程返回给用户