civilvar 发表于 2018-10-2 10:55:35

Linux下设置更改root密码,连接mysql,mysql常用命令

  笔记内容:

[*]  13.1 设置更改root密码
[*]  13.2 连接mysql
[*]  13.3 mysql常用命令
  笔记日期:2017-10-30
  13.1 设置更改root密码
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEBBA9B2079FA0450AA2080919809E2DCD/4074
  root是mysql的最高权限用户,和Linux的root概念一样。默认情况下,mysql的root用户密码是空的,可以直接登录。但是这样不安全,所以要设置密码。
  如果mysql命令没有加入到PATH中,要先加入进去,才能直接使用mysql命令,不然就得使用绝对路径,命令如下:
  export PATH=$PATH:/usr/local/mysql/bin/
  然后再使用mysql -uroot命令,就可以直接登录mysql了:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE7E1C3618248B43B5B312314C16E8FD90/4075
  想要这个环境变量永久生效,就需要配置到profile里:
  vim /etc/profile
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEC2DAF2D0B8ED4F59B530AA0B911F4473/4076
  然后再重新加载此文件:
  source /etc/profile
  mysql的-p是指定密码,但是现在还没有密码,所以直接回车即可:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE426E3CA35443427FA4B403B1CA72B66E/4077
  退出mysql使用exit或者quit。
  设置密码使用如下命令:
  mysqladmin -uroot password '123456'
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEDAB03138CEB548438B5D9FCAB93B4197/4078
  设置完密码之后,就不能直接使用mysql -uroot登录了:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEFC087A02BF074A58AEA129002ADBBF4A/4079
  那我们就使用mysql -uroot -p命令来指定密码:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEA444952A60104235B14FF33342564799/4080
  以下这种更改root密码的方式需要知道原本的密码才能进行更改,不然无法更改,也是使用mysqladmin命令进行更改,如下示例:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEF04147CAD6FB40A7A30F7206D8B14037/4081
  现在就需要使用更改后的密码来登录mysql了:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEB34613A5588642E0B498F3C9DE67E282/4082
  如果你不知道root的密码,或者忘记了,还有另一种方式可以重置密码,首先编辑my.cnf配置文件在下加入如下内容:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE0F1546448E0A4B3CB7E067732FF9A72A/4083
  这一句是用来跳过密码,忽略密码的
  修改完之后,重新启动服务:
  service mysqld restart
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE560AB69145754F5E8EF06B67E451D1A8/4085
  重启之后直接使用mysql -uroot就可以直接登录了:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEFD6C20F9FD884F2A909FF8D8BCD67806/4086
  登录进去之后,我们需要通过一个表来更改密码,首先使用use mysql; 选择mysql库:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE1395211E90154305B41F11E9FDB36FA9/4087
  然后使用desc user; 可以查看user表的表结构,在表结构中可以看到User和Password的字段:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEE63D2DE838514C3BBEBCC928505BD976/4088
  我们现在要修改的就是Password这个字段,sql语句如下:
  update user set password=password('12345') where user='root';
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE57EB0AF59EEA49408644E91490620946/4089
  修改完后,退出mysql,然后将my.cnf的那个跳过密码那一句给注释掉:
  vim /etc/my.cnf
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE2352F684257C48F689CC78FEB0379F89/4090
  然后重启mysql,这时登录就需要使用你更改后的密码了:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE2D638AD063AE4EEB9E8601A3058F0EA9/4091
  13.2 连接mysql
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE6825042314514E4DB2BC854DAF86F192/4092
  介绍一下几种常用的连接mysql的命令:

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

[*]  mysql -uroot -p12345 -h127.0.0.1 -P3306
  这个命令是连接远程的mysql,例如A机器要连接B机器的mysql,就需要使用这个命令,示例:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE06829D5975264BB29E2F5C4BCB4D3EC4/4093
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE08430DF5DEE24AB887C44E9D1D5A7F12/4094

[*]  mysql -uroot -p12345 -S/tmp/mysql.sock
  这个命令是通过sock来进行连接mysql,在Linux/Unix操作系统中有一种通信方式使用的就是sock,但是这种方式仅能用于本机,所以实际上和第一种命令是一样的:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE41B76D3A44754693AA75183DB45887F4/4095
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEC7896A3B4E4741E3B52D9271E88B2F17/4096

[*]  mysql -uroot -p12345 -e “show databases”
  这个命令是通过-e选项在登录时执行一条sql语句,这条sql语句是用来列出mysql中所有的数据库的,这种情况一般使用在shell脚本里:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEFC66363B310843AEB766DCD0CF302A65/4097
  13.3 mysql常用命令
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEFDFCA65734AA4E4BA236256599606CC6/4098
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE198FE495FB9143B2B95FD7004B496FE3/4099
  mysql的命令需要登录进mysql才能进行执行,所以在这之前才要介绍如何去连接mysql,既然知道如何连接mysql后就开始使用一下mysql的常用命令吧:

[*]  查询库 show databases;这个命令刚才也用到过:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEA35141DE9DA041859657FAB23CE916BC/4100

[*]  切换库 use mysql; 这条命令是切换到了mysql库下:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEF48F0C8C0E744C75A7DE5498C29AADA0/4101

[*]  查看库里所有的表 show tables;
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICECCB9CF0CFE9F434E8A503468AD54B930/4102

[*]  查看表里的字段 desc tb_name; 库包含着表,而表包含着字段:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE03243E33FC314A93A8B21678418FA0FE/4103

[*]  查看建表语句 show create table tb_name\G; 如果不加G会显示得很乱:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICECE6A713FE0D541FD98C75F63331C355E/4104

[*]  查看当前用户 select user(); 这个user()是一个函数:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEC38E645E8D534E1C95CABAD7D1E69BB1/4105
  如果你用的是远程登录,那么这里显示的是root@主机名,本地登录才会显示root@localhost
  在root目录下的.mysql_history文件里记录着mysql的命令历史:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE25593428F9BE426E9EEE2CDE904A71EA/4106

[*]  查看当前使用的数据库 select database();
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEBA60064E0E7D4A919B5B6739B595808B/4107
  现在没有选择数据库,所以显示null,要选择一个数据库,才会显示当前数据库的名称:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICED717900C6FFE4E2EB2E361ACE86C4001/4108

[*]  创建库 create database db1;
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE1E1F593D74514FE7B55B9ECDEC6C81BB/4109

[*]  创建表 use db1; create table t1(`id` int(4), `name` char(40));
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEB121AF8F8D11471680F695D81C82CA32/4110
  这时我们使用show create table t1\G;语句就可以看到这个表的创建语句,末尾跟的是默认的引擎和默认的字符集:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEA2740C9952D842FA96FF6A6B43265EA1/4111
  如果不想使用这个默认的字符集,可以在创建表的时候指定其他的字符集,示例:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE53019E8AC5AD4321AAF283520376E221/4113

[*]  查看当前数据库版本 select version();
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEDF370E54A5F74CBCBE83D294DB0C64C9/4114

[*]  查看数据库状态 show status;
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE90920F26F3BB4FAD8E14BEA9336EDB6C/4115

[*]  查看各参数 show variables; 会列出很多内容:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE9515B10245C04E228AE2EC1F459D00F7/4116
  查看具体的参数,例如我要查看max_connect_errors参数:
  show variables like 'max_connect_errors';
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE022C8E9C5BAA4466B06695634C33B141/4117
  如果想要查看某个参数,但是不记得完整的名称了,可以使用模糊查询:
  show variables like 'max_connect%';
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE40D2ED838A624097AFFFBC9E15C896D2/4118

[*]  修改参数 set global max_connect_errors=1000;
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE0C0B6F38A8F545BC8DCEB8786EF713E9/4119
  需要永久生效需要去my.cnf里修改

[*]  查看队列 show processlist; 查看队列相当于在Linux使用ps或者top命令查看系统状况一样:
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICE53E9993BBB67402297548A1EA7DC57B7/4120
  查看完整的队列show full processlist;
http://note.youdao.com/yws/public/resource/29c9a74b1fce08e739234cdef66b5a2b/xmlnote/OFFICEAC4A5C4B7E314681B370A46977725DD5/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

页: [1]
查看完整版本: Linux下设置更改root密码,连接mysql,mysql常用命令