Mysql学习笔记

最近要给数据库做个瘦身,删一些以前历史数据,涉及到一些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();

 

 

你可能感兴趣的:(mysql)