欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql学习笔记

程序员文章站 2022-05-31 18:03:47
...

最近要给数据库做个瘦身,删一些以前历史数据,涉及到一些mysql数据库的事情,做个笔记。

 

<1>启动mysql

         net start mysql

 

<2>关闭 mysql

         net stop mysql

 

<3>忘记root密码

很久没用本地的mysql,忘记root密码了,想重置一下

一.windows下

1.以系统管理员身份运行cmd.

2.查看mysql是否已经启动,如果已经启动,就停止:net stop mysql.

3.切换到MySQL安装路径下。

4.在命令行输入:mysqld -nt --skip-grant-tables  //忽略权限登录,然后再开一个窗口操作

5.以管理员身份重新启动一个cmd命令窗口,输入:mysql -uroot -p,Enter进入数据库。

6.如果不想改密码,只是想看原来的密码的话,可以在命令行执行这个语句

       select host,user,password from mysql.user;       //即可查看到用户和密码

7.如果要修改密码的话,在命令行下 依次 执行下面的语句

       use mysql

              // 'new_pass' 这里改为你要设置的密码

              update user set password=password("new_pass") where user="root";

              //重载权限表

flush privileges;

exit

8.重新启动MYSQL,输入密码登录即可!

 

参考贴:

https://www.cnblogs.com/wxdblog/p/6864475.html

 

<4>如何导出一部分数据

       直接在mysql客户端,勾选对应的记录,export到.sql格式文件,就能拿到生成这些记录对应的insert语句。

 

<5>自己写的一个存储过程的示例

PS:其实我用存储过程来删除数据的初衷,是因为直接删,会导致数据库长时间卡顿,所以就想用存储过程来分区间删除,后面发现还是会卡,跟朋友交流才知道,用存储过程来删除数据,删除数据依然在一个事务中,还是会长期占据CPU,所以还是会卡住。

#定义
DROP PROCEDURE IF EXISTS delete_hour_run_stat;

DELIMITER $$
CREATE PROCEDURE delete_hour_run_stat()
BEGIN

DECLARE i INT DEFAULT 1;

WHILE i < 11000 DO
DELETE FROM t_hour_run_stat WHERE device_id = i AND statistic_time < '2015-01-01';
SET i = i +1;
END WHILE;

END $$
DELIMITER ;

#使用
CALL delete_hour_run_stat();