Mysql常用命令详解
Mysql安装目录
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/init.d/mysql(启动脚本文件mysql的目录)
系统管理
连接MySQL
格式: mysql -h 主机地址 -u用户名 -p用户密码
例 1:连接到本机上的 MySQL。
[email protected]:~$ mysql -uroot -pmysql;
例 2:连接到远程主机上的 MYSQL。
[email protected]:~$ mysql -h 127.0.0.1 -uroot -pmysql;
修改新密码
在终端输入:mysql -u用户名 -p密码,回车进入Mysql。
> use mysql;
> update user set password=PASSWORD('新密码') where user='用户名';
> flush privileges; #更新权限
> quit; #退出
增加新用户
格式:grant select on 数据库.* to [email protected] identified by '密码'
举例:
例 1:增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有
查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to [email protected] identified by 'mysql';
或者
grant all privileges on *.* to [email protected] identified by 'mysql';
然后刷新权限设置。
flush privileges;
例 2:如果你不想 root 有密码操作数据库“mydb”里的数据表,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to [email protected] identified by '';
删除用户
[email protected]:~$ mysql -u用户名 -p密码
mysql>delete from user where user='用户名' and host='localhost';
mysql>flush privileges;
//删除用户的数据库
mysql>drop database dbname;
数据库操作
显示所有的数据库
mysql> show databases;(注意:最后有个 s)
创建数据库
mysql> create database test;
连接数据库
mysql> use test;
查看当前使用的数据库
mysql> select database();
当前数据库包含的表信息
mysql> show tables; (注意:最后有个 s)
删除数据库
mysql> drop database test;
表操作
备注:操作之前使用“use <数据库名>”应连接某个数据库。
建表
命令:create table <表名> (<字段名 1> <类型 1> [,..<字段名 n> <类型 n>]);
例子:
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));
获取表结构
命令: desc 表名,或者show columns from 表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql> show columns from MyClass;
删除表
命令:drop table <表名>
例如:删除表名为 MyClass 的表
mysql> drop table MyClass;
插入数据
命令:insert into <表名> [( <字段名 1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);
查询表中的数据
查询所有行
mysql> select * from MyClass;
查询前几行数据
例如:查看表 MyClass 中前 2 行数据
mysql> select * from MyClass order by id limit 0,2;
或者
mysql> select * from MyClass limit 0,2;
删除表中数据
命令:delete from 表名 where 表达式
例如:删除表 MyClass 中编号为 1 的记录
mysql> delete from MyClass where id=1;
修改表中数据
命令:update 表名 set 字段=新值,... where 条件
mysql> update MyClass set name='Mary' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 类型 其他;
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql> alter table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表 MyClass 名字更改为 YouClass
mysql> rename table MyClass to YouClass;
更新字段内容
命令:update 表名 set 字段名 = 新内容
update 表名 set 字段名 = replace(字段名, '旧内容', '新内容');
例如:文章前面加入 4 个空格
update article set content=concat(' ', content);
数据库导入导出
从数据库导出数据库文件
使用“mysqldump”命令
首先进入 DOS 界面,然后进行下面操作。
1)导出所有数据库
格式:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径]
2)导出数据和数据结构
格式:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]
举例:
例 1:将数据库 mydb 导出到 e:\MySQL\mydb.sql 文件中。
打开开始->运行->输入“cmd”,进入命令行模式。
c:\> mysqldump -h localhost -u root -p mydb >e:\MySQL\mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
例 2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqldump -h localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:将数据库 mydb 的结构导出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqldump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_stru.sql
备注:-h localhost 可以省略,其一般在虚拟主机上用。
3)只导出数据不导出数据结构
格式:
mysqldump -u [数据库用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径]
4)导出数据库中的Events
格式:mysqldump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径]
5)导出数据库中的存储过程和函数
格式:mysqldump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径]
从外部文件导入数据库中
1)使用“source”命令
首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。
mysql>source [备份文件的保存路径]
2)使用“<”符号
首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS 界面。最后执行下面操作。
mysql -u root –p < [备份文件的保存路径]
Mysql常用命令行
Mysql经常使用号令行大全 熬头招、mysql办事的开始工作和停止
net stop mysql
net start mysql
第二招、登岸mysql
语法如下: mysql -u用户名 -p用户密码
键入号令mysql -uroot -p, 回车后提示你输入密码,输入12345,之后回车便可进入到 mysql中了,mysql的提示符是:
mysql>
注意,若是连接到另外的呆板上,则需要插手一个参量-h呆板IP
mysql>mysql –u root –p –h 192.168.0.1
第三招、增加新用户
格式:grant 权限 on 数据库.* to [email protected] identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插进去、修改、删去的权限。起首用以root用户连入mysql,之后键入以下号令:
grant select,insert,update,delete on *.* to [email protected] Identified by "password1";
如果但愿该用户可以或许在任何呆板上登岸mysql,则将localhost改为"%"。
grant select,insert,update,delete on *.* to [email protected]%’ Identified by "password1";
如果你不想user1有密码,可以再打一个号令将密码去掉。
grant select,insert,update,delete on mydb.* to [email protected] identified by "";
第四招: 操作数据库
登录到mysql中,之后在mysql的提示符下运行下面所开列号令,每一个号令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库储存安放着mysql的系统和用户权限信息,我们改密码和添加用户,现实上就是对这个库举行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
六、 清空表中记录:
delete from 表名;
七、 显示表中的记录:
select * from 表名;
第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;
1:施用SHOW语句找出在办事器上当前存在啥子数据库:
mysql> SHOW DBTBBBSES;
2:2、创建一个数据库MYSQLDBTB
mysql> DREBTE DBTBBBSE MYSQLDBTB;
3:选择你所创建的数据库
mysql> USE MYSQLDBTB; (按回车键出现Database changed 时申明操作乐成!)
4:查看此刻的数据库中存在啥子表
mysql> SHOW TBBLES;
5:创建一个数据库表
mysql> DREBTE TBBLE MYTBBLE (name VBRDHBR(20), sex DHBR(1));
6:显示表的结构:
mysql> DESDRIBE MYTBBLE; 7:往表中插手记录
mysql> insert into MYTBBLE values ("hyq","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOBD DBTB LODBL INFILE "D:/mysql.txt" INTO TBBLE MYTBBLE;
9:导入.sql文件号令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删去表
mysql>drop TBBLE MYTBBLE;
11:清空表
mysql>delete from MYTBBLE;
12:更新表中数据
mysql>update MYTBBLE set sex="f" where name='hyq';
posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编纂 保藏 保藏至365Key
13:备份数据库
mysqldump -u root 库名>xxx.data
14:例2:连接到远程主机上的MYSQL
假定远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下号令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL号令: exit (回车)
用户权限控制
对3.22.34版本的MySQL,这里共1四个"Y",其相应的权限如下(按字段顺序摆列):
权限 表列名称 相应解释 施用范围
select select_priv 只有在真正从一个表中检索时才需要select权限 表
insert insert_priv 允许您把新行插进去到一个存在的表中 表
update update_priv 允许你用新值更新现存表中行的列 表
delete delete_priv 允许你删去餍足条件的行 表
create create_priv 允许你创建新的数据库和表 数据库、 表或索引
drop drop_priv 抛弃(删去)现存的数据库和表 数据库或表
reload Reload_priv 允许您告诉办事器再读入权力委托表 办事器管理
shutdown Shutdown_priv 可能被滥用(通过终止办事器拒绝为其他用户办事) 办事器管理
process Process_priv 允许您察看当前执行的查询的普通文本,包括设定或改变口令查询 办事器管理
file File_priv 权限可以被滥用在办事器上读取任何可读的文件到数据库表 办事器上的文件存取
grant Grant_priv 允许你把你自己拥有的那些权限授给其他的用户 数据库或表
references References_priv 允 许你打开和封闭记录文件 数据库或表
index Index_priv 允许你创建或抛弃(删去)索引 表
alter alter_priv 允许您改变表格,可以用于通过重新命名表来推倒权限系统表
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录–其它什么也不允许做。
介绍五个经常使用的MySQL图形化管理工具
1、phpMyAdmin(http://www.phpmyadmin.net/)
phpMyAdmin是最常用的MySQL维护工具,是一个用PHP开发的基于Web方式架构在网站主机上的MySQL管理工具,支持中文,管理数据库非常方便。不足之处在于对大数据库的备份和恢复不方便。
2、MySQLDumper(http://www.mysqldumper.de/en/)
MySQLDumper使用PHP开发的MySQL数据库备份恢复程序,解决了使用PHP进行大数据库备份和恢复的问题,数百兆的数据库都可以方便的备份恢复,不用担心网速太慢导致中间中断的问题,非常方便易用。这个软件是德国人开发的,还没有中文语言包。
3、Navicat(http://www.navicat.com/)
Navicat是一个桌面版MySQL数据库管理和开发工具。和微软SQLServer的管理器很像,易学易用。Navicat使用图形化的用户界面,可以让用户使用和管理更为轻松。支持中文,有免费版本提供。
4、MySQL GUI Tools(http://dev.mysql.com/downloads/gui-tools/)
MySQL GUI Tools是MySQL官方提供的图形化管理工具,功能很强大,值得推荐,可惜的是没有中文界面。
5、MySQL ODBC Connector(http://dev.mysql.com/downloads/connector/odbc/)
MySQL官方提供的ODBC接口程序,系统安装了这个程序之后,就可以通过ODBC来访问MySQL,这样就可以实现SQLServer、Access和MySQL之间的数据转换,还可以支持ASP访问MySQL数据库。
10个可视化开发的MySQL管理工具
使用各种精心设计的工具来管理MySQL数据库要比单纯使用传统的方法轻松得的多。开发人员应该不断寻找那些能够缩短开发时间的工具。这也是我们本文整理这10个能够简化开发过程的MySQL工具的原因。
一、MySQL Workbench
MySQL Workbench是一个由MySQL开发的跨平台、可视化数据库工具。它作为DBDesigner4工程的替代应用程序而备受瞩目。MySQL Workbench可以作为windows、linux和OS X系统上的原始GUI工具,它有各种不同的版本,你可以查看下面的链接以获得它的版本信息。
二、phpMyAdmin
phpMyAdmin是一款免费的、用PHP编写的工具,用于在万维网上管理MySQL,它支持MySQL的大部分功能。这款含有用户界面的软件能够支持一些最常用的操作(比如管理数据库、表格、字段、联系、索引、用户、许可,等等),同时你还可以直接执行任何SQL语句。
它所具备的特性:
>直观的Web界面
>支持大多数MySQL功能:
> 浏览和丢弃数据库、表格、视图、字段和索引
>创建、复制、删除、重命名以及更改数据库、表格、字段和索引
>维护服务器、数据库以及表格,能对服务器的配置提出建议
>执行、编辑和标注任何SQL语句,甚至批量查询
>管理MySQL用户以及用户权限
>管理存储的过程(stored procedures)和触发器(triggers)
>从CSV 和 SQL文件格式中导入数据
>能够以多种格式导出数据:CSV、SQL、XML、PDF、ISO/IEC 26300等
>管理多台服务器
>为数据库布局创建PDF图表
>使用Query-by-example (QBE)创建复杂的查询
>在数据库中进行全局搜索,或者在数据库的子集中进行搜索
>用预定义的函数把存储的数据转化成任何格式
>还具有其他更多特性...
三、Aqua Data Studio
对于数据库管理人员、软件开发人员以及业务分析师来说,Aqua Data Studio是一个完整的集成开发环境(IDE)。它主要具备了四个方面的功能:1)数据库查询和管理工具;2)一套数据库、源代码管理以及文件系统的比较工具;3)为Subversion(SVN)和CVS而设计了一个完整的集成源代码管理客户端;4)提供了一个的数据库建模工具(modeler),它和最好的独立数据库图表工具一样强大。
四、SQLyog
SQLyog是一个全面的MySQL数据库管理工具(/’GUI’/'Frontend’)。 它的社区版(Community Edition)是具有GPL许可的免费开源软件。这款工具包含了开发人员在使用MySQL时所需的绝大部分功能:查询结果集合、查询分析器、服务器消息、表格数据、表格信息,以及查询历史,它们都以标签的形式显示在界面上,开发人员只要点击鼠标即可。此外,它还可以方便地创建视图和存储过程,最近几周笔者一直在反复使用这个功能。
五、MYSQL Front
这个MySQL数据库的图形GUI是一个“真正的”应用程序,它提供的用户界面比用PHP和HTML建立起来的系统更加精确。因为不会因为重载HTML网页而导致延时,所以它的响应是即时的。如果供应商允许的话,你可以让MySQL-Front直接与数据库进行工作。如果不行,你也只需要在发布网站上安装一个小的脚本即可。登录信息会存储在你的硬盘上,因此你不必再登录到不同的网络界面上了。
六、mytop
mytop是一款基于控制台的工具(不是GUI),用于监视线程以及MySQL 3.22.x、3.23.x和4.x服务器的整体性能。它可以在大多数安装了Perl、DBI以及 Term::ReadKey的Unix系统上(包括Mac系统OS X)运行。如果你安装了Term::ANSIColor,你能得到彩色的视图。如果你安装了Time::HiRes,你还可以得到一个不错的 “每秒查询数” 实时统计。mytop0.7版甚至还能在windows上运行。
mytop的灵感来自系统监视工具“top”。我经常在Linux、FreeBSD和Solaris上使用top,你很可能会在mytop中注意到来自这些操作系统的某些特性。mytop连接到MySQL服务器之后,能定期运行SHOW PROCESSLIST和SHOW STATUS命令,并以一种有用的格式总结从这些命令中所获得的信息。
七、Sequel Pro
Sequel Pro是一款管理MAC OSX数据库的应用程序,它可以让你直接访问本地以及远程服务器上的MySQL数据库,并且支持从流行的文件格式中导入和导出数据,其中包括SQL、CSV 和XML等文件。最初,Sequel Pro只是开源CocoaMySQL工程的一个分支。部分特性如下:
>你很容易就可以建立起一个到Mac电脑本地MySQL服务器的连接
>它具有全部的表格管理功能,包括索引。
>支持MySQL视图
>它使用多窗口功能,能够立即支持多个数据库或表格
八、SQL Buddy
SQL Buddy是一个强大的轻量级Ajax数据库管理工具。它非常易于安装,你只需要把文件夹解压到服务器里就行了,这再简单不过了!你还可以进行常见的绝大部分操作。
九、MySQL Sidu
MySQL Sidu是一款免费的MySQL客户端,它通过网络浏览器来运行,非常容易上手!Sidu这几个字母表示Select(选择)、Insert(插入)、Delete(删除)和Update(更新)。Sidu其实还有更多的功能,它看起来更像MySQL前端软件的GUI而不是网页。
>SIDU支持SQL选择、插入、删除,更新功能。
>SIDU支持在浏览器上工作,如Firefox、IE、Opera、Safari、Chrome等等。
>SIDU看起来像MySQL前端软件的GUI而不是网页。
>SIDU可以跟MySQL、Postgres 和SQLite DBs一起工作。
十、Navicat Lite MySQL Admin Tool
Navicat是一款快速、可靠的数据库管理工具,很受大家的欢迎。Navicat专门用来简化数据库管理并且减少管理成本,它旨在满足数据库管理人员、数据库开发人员以及广大中小企业的需要,它有一个很直观的GUI,可以让你安全便捷的创建、组织、访问以及分享信息。
对于MySQL来说,Navicat工具是一个强大的数据库管理和开发工具。它可以跟任何版本的MySQL数据库服务器(3.21版或者以上版本)一起工作,并且支持MySQL大多数最新的功能,包括Trigger、Stored Procedure、Function、Event, View和 Manage User等。Navicat Lite可以免费下载,但是仅适用于非商业活动。
SqlToolBox (数据库管理工具) V1.8.3 绿色版
SqlToolBox是一款纯绿色的免费数据库客户端软件,基于Java Swing编制而成,旨在于为开发人员,系统工程师和数据库管理员提供一种通用方便和快捷的数据库操作工具,使他们摆脱需要学习掌握使用多种数据库客户端的苦恼,并减轻他们日常操作数据库和编写Sql语句的任务量,帮助他们把精力投入到解决更有意义的问题上去。
SqlToolBox现有功能
1. 能连接到MySql,Oracle和Ms Sql Server三种数据库。
2. 连接到数据库后,会提供数据库Schema和表的树视图以便用户进行浏览和查找,另外还提供了一个过滤器帮助用户缩小查找范围。
3. 用户能自动快速获取单表的创建,查询,更新,删除,建表语句,整表全部数据插入语句,单表对应Pojo类和单表的Hibernate映射文件等常用文字,且可借此构造更复杂的Sql语句。
4. 能执行Sql语句并显示执行结果,如果是查询语句会以表格形式显示结果,还提供CSV形式数据下载;如果是非查询语句或是错误的查询语句则会以文字形式告知用户。
5. 在用户输入Sql语句的过程中提供Sql语法高亮功能,以助于Sql语句的识别。
6. 提供Sql格式化功能以助于Sql语句的识别和整理。
7. 提供Redo/Undo,Shift整体退格进格,大小写转化,将Sql语句用StringBuilder包容以及将Sql语句中关键字大写表示等常用文字编辑功能。这些都能帮助程序员在程序中书写Sql语句。
8. 能保存和记忆数据库信息,以便下次打开。
本文借鉴:
http://www.cnblogs.com/TsengYuen/archive/2012/01/11/2319034.html
http://www.cnblogs.com/linjiqin/archive/2013/03/01/2939384.html