MYSQL语句+索引+忘记密码+解决乱码+二进制日志 -学习笔记

一. MySQL常用命令

-------------------------------------

1.查看命令帮助信息:

 mysql> help user;

2.创建一个与root权限相等的账号:

 mysql> grant all privileges on *.* to system@'localhost' identified by 'Root123' with grant option;

3.创建管理员密码:

 mysqladmin -u root password 'Root123'

4.修改管理员密码(两种方法):

 mysqladmin -u root -p'Root123' password 'Root1234' 

 mysql> update mysql.user set password=PASSWORD("Root1234") where user='root' and host='localhost';

5.Root密码丢失以后设置无密码登陆数据库:

 mysqld_safe --defaults-file=/data/3308/my.cnf --skip-grant-tables  &  (多实例,skip参数要放后面)

 mysqld_safe --skip-grant-tables --user-mysql & (单实例)

6.SQL语句分类:

  DDL: create alter drop

  DCL: grant revoke commit rollback

  DML: select insert delete update

7.创建数据库相关:

 mysql> create database wmj;

 mysql> show databases like '%wmj%';

 mysql> show create database wmj;

8.删除数据库:

 mysql> drop database wmj;

9.连接数据库:

 mysql> use wmj123;

10.创建用户:

 mysql> grant all on wmj.* to wmj1234@'172.16.1.%' identified by 'Root12345'; 

 mysql> flush privileges;

11.查看USER表结构:

 mysql> desc user;

12.创建数据表:

 mysql> create table student 

        id int(4) not null, 

        name char(20) not null );

13.查看建表的语句:

  mysql> show create table student;

14.插入数据:

 mysql> insert into student(id,name,age) values(2,'wmj123',21);

15.修改数据:

 mysql> update student set name="wmj234" where id=3;

16.删除数据:

 mysql> delete from student where id =3;

17.新增字段:

 mysql> alter table student add sex char(4) default "2250" after name; 

 #在student表中创建sex列默认填入"2250",放在name后面:

18.删除字段:

 mysql> alter table student drop sex ;           #删除student表中的sex列:

19.修改表名称:

 mysql> rename table test to wmj;

20.删除表:

 mysql> drop table wmj;

21.开启查询日志输出(不重启修改mysql配置参数):

 mysql> set global general_log = on;


二. MySQL索引相关

-------------------------------------

1.索引的分类:

  要在where后面的条件列上创建索引。

  a.主键索引(primary key)

  b.普通索引(index)

  c.联合索引

2.为name列创建索引:

 mysql> alter table student add index index_dept(name);            #index_dept为索引名称

3.删除索引:

 mysql> alter table student drop index index_dept;

 mysql> drop index index_name on student;

4.为name列的前8个字符创建索引:

 mysql> create index index_name on student(name(8))

5.为name和age列创建联合索引:

 mysql> create index index_name_age on student(name,age);

6.为id列创建唯一索引:

 mysql> create unique index index_id on student(id);

7.查看查询语句是否使用了索引:

 mysql> explain select * from student where name = "wmj"\G;

8.explain优化sql语句流程:

  a.通过 show full processlist 查看慢查询语句。

  b.分析慢查询日志:

long_query_time = 1   #超过1秒记录
log-slow-queries = /data/3306/slow.log
log_queries_not_using_indexes   #没有使用索引的记录
 c.使用explain语句分析 或者使用 mysqlsla工具分析。(每天早晨发邮件)

 d.对需要建索引的列建立索引。


三. MySQL乱码相关

-------------------------------------

1.查看各环境字符集:

 mysql> show variables like "character_set%";

2.修改连接客户端字符集:

 mysql> set names utf8;

3.修复服务端的字符集:

 character-set-server=utf8    #配置文件mysqld里面加

4.查看支持哪些字符集:

  mysql> show character set;

5.更改表的字符集:

  mysql> alter table student character set = utf8;

6.生成环境修改数据库的字符集:

 a.用mysqldump将表结构导出,在导出表数据。

 b.使用sed命令修改导出表结构文件里面的utf8为gbk。

 c.在mysql把表结构还原,在还原数据。


四. MySQL二进制日志相关

-------------------------------------

1.查看bin_log是否打开:

 mysql> show variables like '%log_bin%';

2.临时停止bin_log记录:

 mysql> set session sql_log_bin = off ;

3.bin_log记录的三种模式:

  a.row level  :行级记录 |记录仔细,性能不佳

  b.statement level :语句记录 |提高IO,记录较粗,特殊功能可能无法同步 (默认)

  c.Mixed :智能记录 | 两者之间,有存储过程和触发器较多的话可以选择

4.查看bin_log模式配置:

 mysql> show variables like "binlog%"; 

5.修改bin_log记录模式:

 mysql> set session binlog_format = 'row';



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值