Mysql中常用操作(密码破解、数据库备份、数据库导入、授权)

修改表的编码方式:

ALTER TABLE `test` DEFAULT CHARACTER SET utf8;该命令用于将表test的编码方式改为utf8;

修改字段的编码方式:

ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 该命令用于将表test中name字段的编码方式改为utf8

更改表的引擎:

alter table `table_name` engine=innodb;  
alter table `table_name` engine=myisam;

刷新权限:

flush privileges

授权:

创建test用户 并只能操作follow_db数据库:
CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123';

GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `follow\_db`.* TO 'test'@'%';

GRANT GRANT OPTION ON `follow\_db`.* TO 'test'@'%';

Mysql密码修改/破解

1. mysqladmin -u root -p password mypasswd 

输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。 

2.MySQL 忘记口令的解决办法 

如果 MySQL 正在运行,首先杀之:

 killall -TERM mysqld。 

启动 MySQL :

/usr/bin/mysqld_safe --skip-grant-tables & 

就可以不需要密码就进入 MySQL 了。 

然后就是 

>use mysql 
>update user set password=password("new_pass") where user="root"; 
>flush privileges; 

重新杀 MySQL ,用正常方法启动 MySQL 。 

3.先停止mysql服务。

然后打开mysql配置文件/etc/my.cnf.
在【mysqld】下面添加一行代码:skip-grant-tables。
这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。
service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。
mysql -uroot -p  //此时直接回车,既可以进入数据库。
出现mysql>就说明你已经进入到mysql数据库里了。
进数据库后,
use mysql //选择mysql这个库,因为mysql的root密码存放在这个数据库里。
show tables  //查看下mysql库里有哪些表,我们需要操作的用户名密码都在user表里。
desc user  //查看下user表有哪些字段
更改root密码。
update user set password=password('123456') where user="root";  //用户选root,可以随便更改成任意密码,我这里设置的123456,password()是mysql密码加密的一个函数。
 flush privileges;   //刷新下密码,使更改的生效。
exit  //退出数据库
重新登录
mysql -uroot -p   //回车输入刚刚更改的密码,就能进去了。
然后再次进入配置文件vi /etc/my.cnf 把skip-grant-tables去掉。

Mysql数据库备份

mysqldump -uroot -p test >/test.sql 回车输入密码即可

Mysql 数据库导入(1)

Mysql -uroot -p test < /test.sql 回车输入密码即可

Mysql 数据库导入(2)

进入 MySQL 控制台(如:MySQL 5.5 Command Line Client),使用 source 命令执行
Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】,示例:
source C:\test.sql 或者 \. C:\test.sql

索引操作

1、创建索引(PRIMARY KEY,INDEX,UNIQUE)

mysql>ALTER TABLE 表名 ADD INDEX index_name (column list);
mysql>ALTER TABLE 表名 ADD UNIQUE index_name (column list);
mysql>ALTER TABLE 表名 ADD PRIMARY KEY index_name (column list);

2、删除索引(PRIMARY KEY,INDEX,UNIQUE)

mysql>ALTER TABLE 表名 DROP INDEX index_name (column list);
mysql>ALTER TABLE 表名 DROP UNIQUE index_name (column list);
mysql>ALTER TABLE 表名 DROP PRIMARY KEY index_name (column list);

3、重建索引

mysql> REPAIR TABLE 表名 QUICK;

4、查看某个数据表的索引

mysql> SHOW INDEX FROM 表名;

查看表结构

Desc  表名

允许远程登录mysql

直接授权(推荐)
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot 
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限 

FLUSH PRIVILEGES 

清空表

drop truncate delete 程度从强到弱
1、drop table tb 
drop将表格直接删除,没有办法找回
2、truncate table  tablename
truncate 删除表中的所有数据,不能与where一起使用
3、delete from tb (where)
delete 删除表中的数据(可制定某一行)
truncate和delete的区别
① 事务:truncate是不可以rollback的,但是delete是可以rollback的;
原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
② 效果:truncate删除后将重置索引(自增长id从零开始) ,delete不会删除索引 
③ truncate 不能触发任何Delete触发器。
④ delete 删除可以返回行数

转载于:https://my.oschina.net/qqlet/blog/1585789

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值