笔记内容:

  • 13.1 设置更改root密码

  • 13.2 连接mysql

  • 13.3 mysql常用命令

笔记日期:2017-10-30


13.1 设置更改root密码

4074

root是mysql的最高权限用户,和Linux的root概念一样。默认情况下,mysql的root用户密码是空的,可以直接登录。但是这样不安全,所以要设置密码。

如果mysql命令没有加入到PATH中,要先加入进去,才能直接使用mysql命令,不然就得使用绝对路径,命令如下:

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


然后再使用mysql -uroot命令,就可以直接登录mysql了:

4075


想要这个环境变量永久生效,就需要配置到profile里:

vim /etc/profile

4076


然后再重新加载此文件:

source /etc/profile


mysql的-p是指定密码,但是现在还没有密码,所以直接回车即可:

4077


退出mysql使用exit或者quit。


设置密码使用如下命令:

mysqladmin -uroot password '123456'

4078


设置完密码之后,就不能直接使用mysql -uroot登录了:

4079


那我们就使用mysql -uroot -p命令来指定密码:

4080


以下这种更改root密码的方式需要知道原本的密码才能进行更改,不然无法更改,也是使用mysqladmin命令进行更改,如下示例:

4081


现在就需要使用更改后的密码来登录mysql了:

4082


如果你不知道root的密码,或者忘记了,还有另一种方式可以重置密码,首先编辑my.cnf配置文件在[mysqld]下加入如下内容:

4083

这一句是用来跳过密码,忽略密码的


修改完之后,重新启动服务:

service mysqld restart

4085


重启之后直接使用mysql -uroot就可以直接登录了:

4086


登录进去之后,我们需要通过一个表来更改密码,首先使用use mysql; 选择mysql库:

4087

然后使用desc user; 可以查看user表的表结构,在表结构中可以看到User和Password的字段:

4088


我们现在要修改的就是Password这个字段,sql语句如下:

update user set password=password('12345') where user='root';

4089


修改完后,退出mysql,然后将my.cnf的那个跳过密码那一句给注释掉:

vim /etc/my.cnf

4090


然后重启mysql,这时登录就需要使用你更改后的密码了:

4091




13.2 连接mysql

4092

介绍一下几种常用的连接mysql的命令:

  1. mysql -uroot -p12345

这个命令,是较为常用的,连接本机的mysql命令,刚才也使用到了这个命令来连接mysql,在这就不赘述了。


  1. mysql -uroot -p12345 -h127.0.0.1 -P3306

这个命令是连接远程的mysql,例如A机器要连接B机器的mysql,就需要使用这个命令,示例:

4093

4094


  1. mysql -uroot -p12345 -S/tmp/mysql.sock

这个命令是通过sock来进行连接mysql,在Linux/Unix操作系统中有一种通信方式使用的就是sock,但是这种方式仅能用于本机,所以实际上和第一种命令是一样的:

4095

4096


  1. mysql -uroot -p12345 -e “show databases”

这个命令是通过-e选项在登录时执行一条sql语句,这条sql语句是用来列出mysql中所有的数据库的,这种情况一般使用在shell脚本里:

4097





13.3 mysql常用命令

4098

4099

mysql的命令需要登录进mysql才能进行执行,所以在这之前才要介绍如何去连接mysql,既然知道如何连接mysql后就开始使用一下mysql的常用命令吧:

  1. 查询库 show databases;这个命令刚才也用到过:

4100


  1. 切换库 use mysql; 这条命令是切换到了mysql库下:

4101


  1. 查看库里所有的表 show tables;

4102


  1. 查看表里的字段 desc tb_name; 库包含着表,而表包含着字段:

4103


  1. 查看建表语句 show create table tb_name\G; 如果不加G会显示得很乱:

4104


  1. 查看当前用户 select user(); 这个user()是一个函数:

4105

如果你用的是远程登录,那么这里显示的是root@主机名,本地登录才会显示root@localhost

在root目录下的.mysql_history文件里记录着mysql的命令历史:

4106


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

4107

现在没有选择数据库,所以显示null,要选择一个数据库,才会显示当前数据库的名称:

4108


  1. 创建库 create database db1;

4109


  1. 创建表 use db1; create table t1(`id` int(4), `name` char(40));

4110

这时我们使用show create table t1\G;语句就可以看到这个表的创建语句,末尾跟的是默认的引擎和默认的字符集:

4111

如果不想使用这个默认的字符集,可以在创建表的时候指定其他的字符集,示例:

4113


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

4114


  1. 查看数据库状态 show status;

4115


  1. 查看各参数 show variables; 会列出很多内容:

4116


查看具体的参数,例如我要查看max_connect_errors参数:

show variables like 'max_connect_errors';

4117


如果想要查看某个参数,但是不记得完整的名称了,可以使用模糊查询:

show variables like 'max_connect%';

4118


  1. 修改参数 set global max_connect_errors=1000;

4119

需要永久生效需要去my.cnf里修改


  1. 查看队列 show processlist; 查看队列相当于在Linux使用ps或者top命令查看系统状况一样:

4120


查看完整的队列show full processlist;

4121






扩展

mysql5.7 root密码更

http://www.apelearn.com/bbs/thread-7289-1-1.html


myisam 和innodb引擎对比

http://www.pureweber.com/article/myisam-vs-innodb/


mysql 配置详解:

http://blog.linuxeye.com/379.html


mysql调优:

http://www.aminglinux.com/bbs/thread-5758-1-1.html


同学分享的亲身mysql调优经历:

http://www.apelearn.com/bbs/thread-11281-1-1.html