mysql常用命令行.docx
- 文档编号:26678584
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:30
- 大小:37.59KB
mysql常用命令行.docx
《mysql常用命令行.docx》由会员分享,可在线阅读,更多相关《mysql常用命令行.docx(30页珍藏版)》请在冰豆网上搜索。
mysql常用命令行
Mysql常用命令行大全
第一招、mysql服务的启动和停止
netstopmysql
netstartmysql
第二招、登陆mysql和退出
语法如下:
mysql-u用户名-p用户密码
键入命令mysql-uroot-p,回车后提示你输入密码,输入密码,默认密码是root,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
mysql>quit
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
第三招、增加新用户
格式:
grant权限on数据库.*to用户名@登录主机identifiedby"密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先用以root用户连入mysql,然后键入以下命令:
grantselect,insert,update,deleteon*.*touser1@localhostIdentifiedby"password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grantselect,insert,update,deleteonmydb.*touser1@localhostidentifiedby"";
第四招:
操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、显示数据库列表。
showdatabases;
缺省有两个数据库:
mysql和test。
mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、显示库中的数据表:
usemysql;
showtables;
3、显示数据表的结构:
describe表名;
4、建库与删库:
createdatabase库名;
dropdatabase库名;
5、建表:
use库名;
createtable表名(字段列表);
droptable表名;
6、清空表中记录:
deletefrom表名;
7、显示表中的记录:
select*from表名;
第五招、导出和导入数据
1.导出数据:
mysqldump--opttest>mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:
mysqldump-uroot-p123456--databasesdbname>mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2.导入数据:
mysqlimport-uroot-p123456 不用解释了吧。 3.将文本数据导入数据库: 文本数据的字段数据之间用tab键隔开。 usetest; loaddatalocalinfile"文件名"intotable表名; (例如D: /mysql.txt) mysql>LOADDATALOCALINFILE"D: /mysql.txt"INTOTABLEMYTABLE; 4: 导入.sql文件命令(例如D: /mysql.sql) mysql>usedatabase; mysql>sourced: /mysql.sql; 六、: 备份数据库 mysqldump-uroot库名>xxx.data 以下是无意中在网络看到的使用MySql的管理心得, 摘自: 在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。 而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。 刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码,可用如下命令进行: usemysql; deletefromUserwhereUser=""; updateUsersetPassword=PASSWORD(newpassword)whereUser=root; 如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令: mysql-uroot-p; mysql-uroot-pnewpassword; mysqlmydb-uroot-p; mysqlmydb-uroot-pnewpassword; 上面命令参数是常用参数的一部分,详细情况可参考文档。 此处的mydb是要登录的数据库的名称。 在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。 我们给一个应用中使用的用户赋予最恰当的数据库权限。 如一个只进行数据插入的用户不应赋予其删除数据的权限。 MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。 其中GRANT的常用用法如下: grantallonmydb.*toNewUserName@HostNameidentifiedby"password"; grantusageon*.*toNewUserName@HostNameidentifiedby"password"; grantselect,insert,updateonmydb.*toNewUserName@HostNameidentifiedby"password"; grantupdate,deleteonmydb.TestTabletoNewUserName@HostNameidentifiedby"password"; 若要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITHGRANTOPTION选项。 而对于用插入User表添加的用户,Password字段应用PASSWORD函数进行更新加密,以防不轨之人窃看密码。 对于那些已经不用的用户应给予清除,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段,也可以使用REVOKE操作。 下面给出本人从其它资料(-)获得的对常用权限的解释: 全局管理权限: FILE: 在MySQL服务器上读写文件。 PROCESS: 显示或杀死属于其它用户的服务线程。 RELOAD: 重载访问控制表,刷新日志等。 SHUTDOWN: 关闭MySQL服务。 数据库/数据表/数据列权限: ALTER: 修改已存在的数据表(例如增加/删除列)和索引。 CREATE: 建立新的数据库或数据表。 DELETE: 删除表的记录。 DROP: 删除数据表或数据库。 INDEX: 建立或删除索引。 INSERT: 增加表的记录。 SELECT: 显示/搜索表的记录。 UPDATE: 修改表中已存在的记录。 特别的权限: ALL: 允许做任何事(和root一样)。 USAGE: 只允许登录--其它什么也不允许做。 常用MYSQL命令 启动: netstartmySql; 进入: mysql-uroot-p/mysql-hlocalhost-uroot-pdatabaseName; 列出数据库: showdatabases; 选择数据库: usedatabaseName; 列出表格: showtables; 创建数据表: mysql>CREATETABLEmytable(nameVARCHAR(20),sexCHAR (1), ->birthDATE,birthaddrVARCHAR(20)); 显示表格列的属性: showcolumnsfromtableName; 修改表的结构: DESCRIBEmytable; 建立数据库: sourcefileName.txt; 匹配字符: 可以用通配符_代表任何一个字符,%代表任何字符串; 增加一个字段: altertabletabelNameaddcolumnfieldNamedateType; 增加多个字段: altertabletabelNameaddcolumnfieldName1dateType,addcolumnsfieldName2dateType; 多行命令输入: 注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中; 增加一个管理员帐户: grantallon*.*touser@localhostidentifiedby"password"; 每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以; 查询时间: selectnow(); 查询当前用户: selectuser(); 查询数据库版本: selectversion(); 查询当前使用的数据库: selectdatabase(); 用文本方式将数据装入一个数据库表 如果一条一条地输入,很麻烦。 我们可以用文本文件的方式将所有记录加入你的数据库表中。 创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATETABLE语句中列出的列次序给出,例如: abccsf1977-07-07china maryf1978-12-12usatomm1970-09-02usa 使用下面命令将文本文件“mytable.txt”装载到mytable表中: mysql>LOADDATALOCALINFILE"mytable.txt"INTOTABLEpet; 再使用如下命令看看是否已将数据输入到数据库表中: mysql>select*frommytable; (e129) 1、删除student_course数据库中的students数据表: rm-fstudent_course/students.* 2、备份数据库: (将数据库test备份) mysqldump-uroot-ptest>c: \test.txt 备份表格: (备份test数据库下的mytable表格) mysqldump-uroot-ptestmytable>c: \test.txt 将备份数据导入到数据库: (导回test数据库) mysql-uroot-ptest \test.txt 3、创建临时表: (建立临时表zengchao) createtemporarytablezengchao(namevarchar(10)); 4、创建表是先判断表是否存在 createtableifnotexistsstudents(……); 5、从已经有的表中复制表的结构 createtabletable2select*fromtable1where1<>1; 6、复制表 createtabletable2select*fromtable1; 7、对表重新命名 altertabletable1renameastable2; 8、修改列的类型 altertabletable1modifyidintunsigned;//修改列id的类型为intunsigned altertabletable1changeidsidintunsigned;//修改列id的名字为sid,而且把属性修改为intunsigned 9、创建索引 altertabletable1addindexind_id(id); createindexind_idontable1(id); createuniqueindexind_idontable1(id);//建立唯一性索引 10、删除索引 dropindexidx_idontable1; altertabletable1dropindexind_id; 11、联合字符或者多个列(将列id与": "和列name和"="连接) selectconcat(id,': ',name,'=')fromstudents; 12、limit(选出10到20条)<第一个记录集的编号是0> select*fromstudentsorderbyidlimit9,10; 13、MySQL不支持的功能 事务,视图,外键和引用完整性,存储过程和触发器 14、MySQL会使用索引的操作符号 <,<=,>=,>,=,between,in,不带%或者_开头的like 15、使用索引的缺点 1)减慢增删改数据的速度; 2)占用磁盘空间; 3)增加查询优化器的负担; 当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案; 16、分析索引效率 方法: 在一般的SQL语句前加上explain; 分析结果的含义: 1)table: 表名; 2)type: 连接的类型,(ALL/Range/Ref)。 其中ref是最理想的; 3)possible_keys: 查询可以利用的索引名; 4)key: 实际使用的索引; 5)key_len: 索引中被使用部分的长度(字节); 6)ref: 显示列名字或者"const"(不明白什么意思); 7)rows: 显示MySQL认为在找到正确结果之前必须扫描的行数; 8)extra: MySQL的建议; 17、使用较短的定长列 1)尽可能使用较短的数据类型; 2)尽可能使用定长数据类型; a)用char代替varchar,固定长度的数据处理比变长的快些; b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能; c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。 使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了; d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大; 18、使用notnull和enum 尽量将列定义为notnull,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询; 如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的; 19、使用optimizetable 对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。 具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。 可以通过使用optimizetable来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimizetable可以用于MyISAM和BDB类型的数据表。 实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表; 20、使用procedureanalyse() 可以使用procedureanalyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedureanalyse()就可以了;例如: select*fromstudentsprocedureanalyse(); select*fromstudentsprocedureanalyse(16,256); 第二条语句要求procedureanalyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长; 21、使用查询缓存 1)查询缓存的工作方式: 第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。 2)配置缓存参数: 变量: query_cache_type,查询缓存的操作模式。 有3中模式,0: 不缓存;1: 缓存查询,除非与selectsql_no_cache开头;2: 根据需要只缓存那些以selectsql_cache开头的查询;query_cache_size: 设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。 22、调整硬件 1)在机器上装更多的内存; 2)增加更快的硬盘以减少I/O等待时间; 寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快; 3)在不同的物理硬盘设备上重新分配磁盘活动; 如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。 1、启动MySQL服务器 两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。 二是在DOS方式下运行d: \mysql\bin\mysqld (假设mysql安装在d: \mysql);当然也可以netstartmysql命令启动。 而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart”命令,注意启动者应具有管理员权限。 2、进入mysql交互操作界面 在DOS方式下,运行: d: \mysql\bin\mysql 出现: mysql的提示符”mysql>“,此时已进入mysql的交互操作方式。 如果出现“ERROR2003: Can′tconnecttoMySQLserveron′localhost′(10061)“,说明你的MySQL还没有启动。 3、退出MySQL操作界面 在mysql>提示符下输入quit可以随时退出交互操作界面: mysql>quit Bye 4、第一条命令(多条命令用“,”分隔,一条命令可以分成多行输入,直到出现分号”;”为止 mysql>selectversion(),current_date(); mysql>Select(20+5)*4; mysql>Select(20+5)*4,sin(pi()/3); mysql>Select(20+5)*4ASResult,sin(pi()/3);(AS: 指定假名为Result) 5、常用sql语句 1: 使用SHOW语句找出在服务器上当前存在什么数据库: mysql>SHOWDATABASES; 2: 2、创建一个数据库MYSQLDATA mysql>CreateDATABASEMYSQLDATA; 3: 选择你所创建的数据库 mysql>USEMYSQLDATA;(按回车键出现Databasechanged时说明操作成功! ) 4: 查看现在的数据库中存在什么表 mysql>SHOWTABLES; 5: 创建一个数据库表 mysql>CreateTABLEMYTABLE(nameVARCHAR(20),sexCHAR (1)); 6: 显示表的结构: mysql>DESCRIBEMYTABLE; 7: 往表中加入记录 mysql>insertintoMYTABLEvalues(”hyq”,”M”); 8: 用文本方式将数据装入数据库表中(例如D: /mysql.txt) mysql>LOADDATALOCALINFILE“D: /mysql.txt”INTOTABLEMYTABLE; 9: 导入.sql文件命令(例如D: /mysql.sql) mysql>usedatabase; mysql>sourced: /mysql.sql; 10: 删除表 mysql>dropTABLEMYTABLE; 11: 清空表 mysql>deletefromMYTABLE; 12: 更新表中数据 mysql>updateMYTABLEsetsex=”f”wherename=’hyq’; 13: 插入数据 mysq>linsertintoMYTABLEvalues(1,‘第二章’,0×2134545); 14: 登录后使用数据库mysql mysql-uroot-pmysql mysql-uroot-p-h11.11.11.11database 15: mysqljdbc连接url使用中文 jdbc: mysql: //localhost/test? useUnicode=true&characterEncoding=gb2312 [separator] 其它: showprocesslist;列出每一笔联机的信息。 showvariables;列出mysql的系统设定。 showtablesfromdb_name;列出db_name中所有数据表; show[full]columnsfromtable_name;列出table_name中完整信息,如栏名、类型,包括字符集编码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 常用 命令行