mysql常用操作【更新中】

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;

(複製表結構和所有約束,包括主鍵索引,不會複製數據)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章