1、导出表结构、不导出数据
mysqldump -d --default-character-set=latin1 -h Host -P Port -u UserName -p PassWord DBName (tablename)> databaseStr.txt
---------------------------------------------------------------------------------------------------------------------------------------------
2、连接数据库
mysql -h Host -u UserName -p PassWord -P Port DBName
---------------------------------------------------------------------------------------------------------------------------------------------
3、导出数据库记录到文件
mysql -h Host -PPort -uUserName -pPassWord DBName -e "select msg,ip,time from wall_09 where owner_id='13333333365' \G" >> wall_1717297865.txt
----------------------------------------------------------------------------------------------------------------------------------------------
4、基本操作命令
mysql -hhost -uuser -ppassword -Pport dbname 连接数据库
show databases; 显示数据库
create database name; 创建数据库
use databasename; 选择数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe(desc) tablename; 显示具体的表结构
mysqladmin drop databasename 删除数据库前,有提示。
select version(),current_date; 显示当前mysql版本和当前日期
Select[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[Where…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]
[WITH OWNERACCESS OPTION] distinct去除重复字段
delete from 表名 where 表达式; 删除表中数据
update 表名 set 字段=新值,… where 条件; 修改表中数据
alter table 表名 add字段 类型 其他; 在表中增加字段
rename table 原表名 to 新表名; 更改表名
delete from 表名; 将表中记录清空
show create table table_name 显示当前表的建表语句
mysqladmin -u用户名 -p旧密码 password 新密码 修改数据库密码
show processlist; 显示mysql进程
\q 、quit 退出
------------------------------------------------------------------------------------------------------------------------------------------------
5、示例
mysqldump
备份数据库
shell> mysqldump -h host -u root -p --default-character-set=latin1 dbname >dbname_backup.sql
导出一个数据库结构
shell> mysqladmin -u root -p -d -add-drop-table databasename > a.sql
注:-d 表结构 -add-drop-table 在每个create语句之前增加一个drop table
如果只想获得插入数据的sql命令,而不需要建表命令,则命令如下:
shell> mysqladmin -u root -p -t databasename > a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump -T ./ dbname tablename ???
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定tablename表,则将卸出整个数 据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
恢复数据库
A:常用source 命令
进入mysql数据库控制台
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source db.sql
B:使用mysqldump命令
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql
C:使用mysql命令
mysql -u username -p -D dbname < filename.sql
----------------------------------------------------------------------------------
修改mysql中root的密码:
shell>mysql -h localhost -u root -p //登录
mysql> update user set password=password("xueok654123") where user='root';
mysql> flush privileges //刷新数据库
mysql>use dbname; 打开数据库:
mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后
mysql>describe user; 显示表mysql数据库中user表的列信息;
mysql>insert into tablename (字段,字段,字段) values(值,值,值),(值,值,值);
mysql>select <字段1,字段2,...> from < 表名 > where < 表达式 >;
------------------------------------------------------------------------------------
为用户授权grant
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql> grant all privileges on *.* to user@localhost identified by ’something’ with
增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;
删除授权:
mysql> revoke all privileges on *.* from root@”%”;
mysql> delete from user where user=”root” and host=”%”;
mysql> flush privileges;
==============================================================================================================
mysql 新增字段 添加字段 删除字段 修改字段 级联删除 级联更新 等
//主键
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
//删除列
alter table t2 drop column c;
//重命名列
alter table t1 change a b integer;
//改变列的类型
alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';
//重命名表
alter table t1 rename t2;
//加索引
mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);
//加主关键字的索引
mysql> alter table tablename add primary key(id);
//加唯一限制条件的索引
mysql> alter table tablename add unique emp_name2(cardnumber);
//删除某个索引
mysql>alter table tablename drop index emp_name;
//增加字段:
mysql> ALTER TABLE table_name ADD field_name field_type;
//修改原字段名称及类型:
mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
//删除字段:
mysql> ALTER TABLE table_name DROP field_name;
//级联更新 和 删除(红色部分,不区分大小写 )
DROP TABLE IF EXISTS `mail_model`;
create table mail_model(
id varchar(50) primary key not null ,
mail_filename varchar(200),
content varchar(2000)
)ENGINE=InnoDB DEFAULT CHARSET=gbk;
DROP TABLE IF EXISTS `mail_model_extend`;
create table mail_model_extend(
id int(6) auto_increment not null primary key,
rid varchar(50) not null,
content varchar(2000),
INDEX (RID),
FOREIGN KEY (RID) REFERENCES mail_model(ID) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=gbk;
mysql常用命令(自己用的比较多的)
最新推荐文章于 2024-10-08 11:31:42 发布