十三周四次课(3月22日)

13.1 设置更改root密码

13.2 连接mysql

13.3 mysql常用命令

13.1 设置更改root密码

root用户的mysql的超级管理员用户,跟linux的root用户类似。但需要区分,这个root用户和系统的root用户不是一个用户,需要注意。也可以创建一个普通用户来连接mysql

首次进入mysql数据库是不用密码的。默认mysql数据库的root用户密码为空,连接时不需要密码

  • 设置密码:

启动mysql:service mysqld start

2018.3.22 13周4次课_Linux

usr/local/mysql/bin/mysql -uroot

更改环境变量PATH,增加mysql绝对路径

export PATH=$PATH:/usr/local/mysql/bin/

mysql –uroot

2018.3.22 13周4次课_Linux_02

让变量永久生效,要把export PATH=$PATH:/usr/local/mysql/bin/ 放入/etc/profile文件里最后一行

2018.3.22 13周4次课_Linux_03

使环境变量生效需要运行命令:source /etc/profile

进入mysql数据库:mysql -uroot –p //因为密码为空,所以输入密码时直接回车

2018.3.22 13周4次课_Linux_04

设置密码:mysqladmin -uroot password '密码'

mysqladmin -uroot password '123456' //密码可以不用单引号

2018.3.22 13周4次课_学习_05

用新设置的密码登陆:mysql -uroot –p'123456'

2018.3.22 13周4次课_Linux_06

  • 更改密码:mysqladmin -uroot -p'旧密码' password '新密码'

mysqladmin -uroot -p'123456' password 'aminglinux.2'

登陆:mysql -uroot -p'aminglinux.2'

2018.3.22 13周4次课_学习_07

  • 密码重置

编辑vim /etc/my.cnf //在【mysqld】这部分增加skip-grant

2018.3.22 13周4次课_学习_08

修改配置文件后需要重启服务:service mysqld restart

2018.3.22 13周4次课_Linux_09

现在进入就不要密码了:mysql -uroot

2018.3.22 13周4次课_学习_10

在mysql库里的user表里更改密码

use mysql; //切换到mysql库

2018.3.22 13周4次课_Linux_11

select * from user\G; //查找user表,G:表示竖排显示

2018.3.22 13周4次课_学习_12

select password from user; //password是加密的字符串,也可以写成select password from user where user='root';

2018.3.22 13周4次课_Linux_13

update user set password=password('aminglinux') where user='root'; //第一个password是密码字段,第二个password是生成加密密码的函数

2018.3.22 13周4次课_Linux_14

退出改回/etc/my.cnf文件,删除skip-grant这一行

重启服务:service mysqld restart

2018.3.22 13周4次课_学习_15

再次登陆:mysql -uroot –paminglinux

2018.3.22 13周4次课_Linux_16

13.2 连接mysql

mysql -uroot -pamingliunx //连接本机,默认连接方式是sock

mysql -uroot -pamingliunx -h127.0.0.1 -P3306 //连接远程,-h:指定远程主机的ip;-P:指定远程主机mysql的绑定端口,默认都是3306

2018.3.22 13周4次课_学习_17

mysql -uroot -paminglinux -S/tmp/mysql.sock //用sock方式连接,适合连接本机,用-S来指定sock。和第一种连接方式一样

mysql -uroot -paminglinux -e "show databases" //-e是连接上数据库后的操作命令,使用在shell脚本里比较多

2018.3.22 13周4次课_学习_18

13.3 mysql常用命令

  • 查询库 show databases;

2018.3.22 13周4次课_学习_19

  • 切换库 use mysql;

2018.3.22 13周4次课_Linux_20

  • 查看库里的表 show tables; //库由表组成的

2018.3.22 13周4次课_学习_21

  • 查看表里的字段 desc tb_name; //表由字段组成的

desc user; //查看user表的字段

2018.3.22 13周4次课_学习_22

  • 查看建表语句 show create table tb_name\G;

show create table user\G; //查看user表是怎么创建的

2018.3.22 13周4次课_学习_23

  • 查看当前用户 select user(); //显示的是localhost

2018.3.22 13周4次课_学习_24

换一种方法:指定ip和端口

mysql -uroot -paminglinux -h127.0.0.1 //显示的是localhost,因为127.0.0.1是本机

2018.3.22 13周4次课_学习_25

mysql -uroot -paminglinux -h192.168.37.101 -P3306 //显示的是主机名,这个是反解析。通过192.168.7.101反解析到aming-02的主机

2018.3.22 13周4次课_Linux_26

  • 查看当前使用的数据库 select database();

2018.3.22 13周4次课_Linux_27

数据库为空

use mysql //切换到mysql数据库查看

2018.3.22 13周4次课_学习_28

数据库是mysql

  • mysql也有命令历史的记录功能,文件在root用户根目录下 /. mysql_history

2018.3.22 13周4次课_Linux_29

cat .mysql_history

2018.3.22 13周4次课_学习_30

  • 创建库 create database db1;

2018.3.22 13周4次课_学习_31

show databases; //可以看到多了个db1

2018.3.22 13周4次课_学习_32

  • 创建表 use db1; create table t1(`id` int(4), `name` char(40)); //t1:表名;id:字段名;int:数据类型是数字型;4:数据长度是4;name:字段名;char:数据类型是字符型;40:数据长度是40

2018.3.22 13周4次课_Linux_33

show create table t1\G;

2018.3.22 13周4次课_Linux_34

ENGINE=InnoDB //数据引擎是InnoDB

DEFAULT CHARSET=latin1 //默认字符集是拉丁1

drop table t1; //删除t1表

2018.3.22 13周4次课_Linux_35

use db1; create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=utf8; //创建默认字符集是utf8的表t1

2018.3.22 13周4次课_Linux_36

show create table t1\G;

2018.3.22 13周4次课_Linux_37

  • 查看当前数据库版本 select version();

2018.3.22 13周4次课_学习_38

  • 查看数据库状态 show status;

2018.3.22 13周4次课_Linux_39

  • 查看各参数 show variables; show variables like 'max_connect%';

show variables; //查看全部参数

2018.3.22 13周4次课_Linux_40

show variables like 'max_connect%'; //查看指定的参数,%:通配符,类似shell下的*。

2018.3.22 13周4次课_Linux_41

修改参数 set global max_connect_errors=1000; //在内存中生效,重启就失效了。想永久生效就要退出mysql,在/etc/my.cnf配置中修改

2018.3.22 13周4次课_Linux_42

查看队列 show processlist; show full processlist;

show processlist;

2018.3.22 13周4次课_Linux_43

show full processlist; //查看完整的信息

2018.3.22 13周4次课_Linux_44