1、因某些原因进不去数据库
【实例】重置mysql密码
vim my.cnf
在[mysqld]下添加“skip-grant”
/etc/init.d/mysqld restart
进入数据库就无需密码验证:
mysql > update user setpassword=password(‘your passwd’) where user=‘root’;
> flush privileges;
2、
查看mysql引擎:mysql -uroot -p passwd -e “show variables like ‘%engine%’”;
3、mysql的两种连接方式
TCP:mysql -uroot -p [password] -h [hostIP] -P [port(default3306)]
socket:
mysql -uroot -p [password] -e“use mysql;select user,host from user where user=’root’”-S [socket file]
mysql.sock文件在安装时或配置时指定过,若系统找不到,需要做软连接到/tmp/mysql.sock
mysql命令历史:cat.mysql_history,是自动记录的,如果去掉可以指向/dev/null
4、mysql常用操作
查看都有哪些库
show databases;
查看某个库的表
use db; show tables;
查看表的字段
desc tb;
查看建表语句
show create table tb\G;(\G表示格式化显示)
当前用户
select user();
当前库
select database();
创建库
create database db1;
创建表
create table t1 (`id` int(4), `name` char(40)) ENGINE=DEFAULT CHARSET=gbk|utf8;
查看数据库版本
select version();
查看mysql状态
show status;
修改mysql参数
show variables like 'max_connect%'; set globalmax_connect_errors = 1000;
查看mysql队列
show processlist;
创建普通用户并授权
grant all on *.* to user1 identified by '123456';
grant all on db1.* to 'user2'@'10.0.2.100'identified by '111222';
grant all on db1.* to 'user3'@'%' identified by'231222';
插入数据
insert into tb1 (id,name) values(1,'aming');
删除数据
delete from tab where name=’1’;
更改密码
UPDATE mysql.user SET password=PASSWORD("newpwd")WHERE user='username' ;
查询
select count(*) from mysql.user; select * from mysql.db;
select * from mysql.db where host like '10.0.%';
插入
update db1.t1 set name='aaa' where id=1;
清空表数据(不改变字段)
truncate table db1.t1;
删除表
drop table db1.t1; selectdatabase();
删除数据库
drop database db1;
修复表
repair table tb1 [use frm];
备份
mysqldump -uroot -p db >1.sql
恢复
mysql -uroot-p db <1.sql
只备份一个表
mysqldump-uroot -p db tb1 > 2.sql
备份时指定字符集
mysqldump -uroot -p --default-character-set=utf8 db >1.sql
恢复也指定字符集
mysql-uroot -p --default-character-set=utf8 db < 1.sql
复制表:
CREATE table db1.tab_201605 as select * from db2.tab_20160501 where 1!=1;
(复制表结构,不复制数据和索引)
CREATE table db1.tab_201605 as select * from db2.tab_20160501 where 1=1;
(复制表结构,复制原表的数据,不复制索引)
CREATE table db1.tab_201605 like db2.tab_20160501;
(复制表结构和所有约束,包括主键索引,不会复制数据)