[批处理教程之MySQL]001.MySQL 常用命令大全

连接MySQL

格式: mysql -h主机地址 -u用户名 -p用户密码

1.连接到本机上的MySQL

首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码。注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。

如果刚安装好MySQL,超级用户root是没有密码的,故直接回车即可进入到MySQL中了,MySQL的提示符是: mysql>

2.连接到远程主机上的MySQL

假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)

3.退出MySQL命令

exit (回车)

修改密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码

1. 给root加个密码superdo

首先在DOS下进入目录mysql\bin,然后键入以下命令:

mysqladmin -u root -password superdo

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2. 再将root的密码改为sdmysql

mysqladmin -u root -p superdo password sdmysql

增加新用户

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符

1. 增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

首先用root用户连入MYSQL,然后键入以下命令:

grant select,insert,update,delete on *.* to [[email protected]”%][email protected]”%[/email]” Identified by “abc”;

但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。

2. 增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机)

这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb.* to [[email protected]][email protected][/email] identified by “abc”;

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant select,insert,update,delete on mydb.* to [[email protected]][email protected][/email] identified by “”;

创建数据库

命令:create database <数据库名>

注意:创建数据库之前要先连接MySQL服务器

1.建立一个名为xhkdb的数据库

①CREATE DATABASE 数据库名;

②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY ‘密码‘;

③SET PASSWORD FOR ‘数据库名‘@‘localhost‘ = OLD_PASSWORD(‘密码‘);

依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。

显示数据库

命令:show databases (注意:最后有个s)

注意:为了不再显示的时候乱码,要修改数据库默认编码。以下以GBK编码页面为例进行说明:

mysql> show databases;

1.修改MYSQL的配置文件

my.ini里面修改default-character-set=gbk

2.代码运行时修改

①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

②PHP代码:header("Content-Type:text/html;charset=gb2312");

③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);

该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

删除数据库

命令:drop database <数据库名>

1.删除名为 sddb的数据库

mysql> drop database sddb;

2.删除一个已经确定存在的数据库

mysql> drop database drop_database;

Query OK, 0 rows affected (0.00 sec)

3.删除一个不确定存在的数据库

mysql> drop database drop_database;

ERROR 1008 (HY000): Can‘t drop database ‘drop_database‘; database doesn‘t exist

// 发生错误,不能删除‘drop_database‘数据库,该数据库不存在。

mysql> drop database if exists drop_database;
Query OK, 0 rows affected, 1 warning (0.00 sec) // 产生一个警告说明此数据库不存在
mysql> create database drop_database;
Query OK, 1 row affected (0.00 sec)
mysql> drop database if exists drop_database;  // if exists 判断数据库是否存在,不存在也不产生错误
Query OK, 0 rows affected (0.00 sec)

连接数据库

命令: use <数据库名>

1.如果sddb数据库存在,尝试存取它:

mysql> use sddb;

Database changed

2.use 语句可以通告MySQL把db_name数据库作为默认(当前)数据库使用,用于后续语句。

$ git push origin twitter-experiment:refs/heads/twitter-experiment# Where origin is our server name and twitter-experiment is the branch

如果你想要从服务端删除分支:

$ git push origin :twitter-experiment

如果你想要查看远程分支的状态:

$ git remote show origin

这将列出那些曾经存在而现在不存在的远程分支,这将帮助你轻易地删除你本地多余的分支。

$ git remote prune

最后,如果本地追踪远程分支,常用方式是:

$ git branch --track myfeature origin/myfeature$ git checkout myfeature

尽管这样,Git的新版本将启动自动追踪,如果你使用-b来checkout:

$ git checkout -b myfeature origin/myfeature

Storing Content in Stashes, Index and File System 在stash储存内容、索引和文件系统

10. Stashing

在Git中你可以将当前的工作区的内容保存到Git栈中并从最近的一次提交中读取相关内容。以下是个简单的例子:

$ git stash# Do something...$ git stash pop

很多人推荐使用git stash apply来代替pop。这样子恢复后储存的stash内容并不会删除,而‘pop’恢复的同时把储存的stash内容也删了 ,使用git stash apply 就可以移除任何栈中最新的内容。

<code data-language="javascript">$ git stash drop</code>

git可以自动创建基于当前提交信息的指令,如果你更喜欢使用通用的信息(相当于不会对前一次提交做任何改动)

<code data-language="javascript">$ git stash save "My stash message"</code>

如果你想使用某个stash(不一定是最后一个),你可以这样将其列表显示出来然后使用:

<code data-language="javascript">$ git stash list  [email protected]{0}: On master: Changed to German  [email protected]{1}: On master: Language is now Italian$ git stash apply [email protected]{1}</code>

11.添加交互

在svn中,如果你文件有了改动之后,然后会提交所有改动的文件,在 Git中为了能更好的提交特定的文件或者某个补丁,你需要在交互模式提交选择提交的文件的内容。

$ git add -istaged     unstaged path

*** Commands ***  1: status      2: update   3: revert   4: add untracked  5: patch      6: diff     7: quit     8: helpWhat now&gt;

这是基于菜单的交互式提示符。您可以使用命令前的数字或进入高亮字母(如果你有高亮输入)模式。常用形式是,输入你想执行的操作前的数字。(你可以像1或1 – 4或2、4、7的格式来执行命令)。

如果你想进入补丁模式(在交互模式中输入p或5),同样也可以这样操作:

$ git add -p    diff --git a/dummy.rb b/dummy.rb  index 4a00477..f856fb0 100644  --- a/dummy.rb+++ b/dummy.rb@@ -1,5 +1,5 @@ class MyFoo   def say-    puts "Annyong Haseyo"+    puts "Guten Tag"   end endStage this hunk [y,n,q,a,d,/,e,?]?

如你所见,你将在选择添加改动的那部分文件的底部获得一些选项。此外,使用“?”会说明这个选项。

12. 文件系统中的储存/检索

有些项目(比如Git自己的项目)需要直接在Git的文件系统中添加额外的并不想被检查的文件。

让我们开始在Git中保存随机文件

$ echo "Foo" | git hash-object -w --stdin51fc03a9bb365fae74fd2bf66517b30bf48020cb

比如数据库中的对象,如果你不想让一些对象被垃圾回收,最简单的方式是给它加标签:

$ git tag myfile 51fc03a9bb365fae74fd2bf66517b30bf48020cb

在这里我们设置myfile的标签,当我们需要检索该文件时可以这样:

$ git cat-file blob myfile

这对开发者可能需要的但是并不想每次都去检查的有用文件(密码,gpg键等等)很管用(特别是在生产过程中)。

Logging and What Changed? 记录日志和什么改变了?

13. 查看日志

在不使用“git log”的情况下,你不能查看你长期的最近提交内容,但是,仍然有一些更便于你使用的方法,比如,你可以这样查看单次提交变动的内容:

$ git log -p

或者你只看文件变动的摘要:

$ git log --stat

这个很赞的别名,可以让你在一行命令下简化提交,并展示不错的图形化分支。

$ git config --global alias.lol "log --pretty=oneline --abbrev-commit --graph --decorate"$ git lol* 4d2409a (master) Oops, meant that to be in Korean* 169b845 Hello world

14.在日志中查找

如果你想根据指定的作者查找:

$ git log --author=Andy

更新:感谢 Johannes的评论,解除了我的一些困惑,

或者你可以搜索你提交信息的内容:

$ git log --grep="Something in the message"

这些强大的指令被称为pickaxe指令,来检查被移除或添加特定块的内容(比如,当他们第一次出现或者被移除),添加任何一行内容都会告诉你(但是并不包括那行内容刚刚被改动)

$ git log -S "TODO: Check for admin status"

如果你改动一个特定的文件会怎么样?如:lib/foo.rb

$ git log lib/foo.rb

如果你有feature/132 和ferature/145这两个分支,并想查看这些不在master上的分支内容。( ^ 符号是意味着非)

$ git log feature/132 feature/145 ^master

你同样可以使用ActiveSupport风格的日期来缩短时间范围:

$ git log --since=2.months.ago --until=1.day.ago

默认会使用OR来合并查询,但你也可改用AND(如果你有不止一个条件)

$ git log --since=2.months.ago --until=1.day.ago --author=andy -S "something" --all-match

15.选择试图/改动的之前的版本。

根据你知道的信息,可以按照以下方式来找到之前的版本:

$ git show 12a86bc38 # By revision$ git show v1.0.1 # By tag$ git show feature132 # By branch name$ git show 12a86bc38^ # Parent of a commit$ git show 12a86bc38~2 # Grandparent of a commit$ git show [email protected]{yesterday} # Time relative$ git show [email protected]{2.hours.ago} # Time relative

注意:不像前一部分所说,在最后的插入符号意味着提交的父类,在前面的插入符号意味着不在这个分支上。

16. 选择一个方式

最简单的方式:

$ git log origin/master..new# [old]..[new] - everything you haven‘t pushed yet

你也可以省略[new],这样将默认使用当前的HEAD指针。

Rewinding Time & Fixing Mistakes 回滚和修复错误

17.重置更改

如果你没有提交你可以简单的撤销改动:

$ git reset HEAD lib/foo.rb

通常我们使用”unstage“这样的别名来代替:

$ git config --global alias.unstage "reset HEAD"$ git unstage lib/foo.rb

如果你已经提交了,有两种情况:如果是最后一次提交你仅仅需要amend:

$ git commit --amend

这将不执行最后一次提交,恢复你原来的内容,提交信息将默认为你下次提交的信息。

如果你已经提交过不止一次了并且想完全回到之前那个记录,你可以重置分支回到指定的时间。

$ git checkout feature132$ git reset --hard HEAD~2

如果你想将分支回滚但想要SHA1数(版本号)不一样(也许你可以将分支的HEAD指向另一个分支,或者之后的提交),你可以通过如下方式:

$ git checkout FOO$ git reset --hard SHA

实际上还有个更快的方式(这样并不会改变你的文件复制内容,并回归到第一次FOO的状态并指向SHA)

$ git update-ref refs/heads/FOO SHA

18. 提交至错误的分支

好吧,假定你提交到master上了,但是你想提交的是名为experimental的主题分支上,如果想移除这个改动,你可以在当前创建一个分支并将head指针回滚再检查新的分支

$ git branch experimental   # Creates a pointer to the current master state$ git reset --hard master~3 # Moves the master branch pointer back to 3 revisions ago$ git checkout experimental

如果你在分支的分支的分支进行了改动将会很麻烦,那么你需要做的就是在其他处进行分支rebase改动

$ git branch newtopic STARTPOINT$ git rebase oldtopic --onto newtopic

19. rebase的交互

这是个很不错的功能,我曾看过演示但一直以来并没有真正搞懂,现在我知道了,非常简单。假如你进行了三次提交,但是你想重新编辑它们(或者结合它们)。

$ git rebase -i master~3

然后你让你的编辑器打开一些指令,你需要做的就是修改指令来选择/squash/编辑(或删除)/提交和保存/退出,编辑完使用git rebase —continue 来通过你的每一个指令。

如果你选择编辑一个,它将离开你的提交状态,所以你需要使用git commit -amend来编辑它。

注意:不要在rebase的时候提交——只能添加了之后再使用—continue, —skip 或—abort.

20. 清除

如果你在分支中提交了一些内容(也许是一些SVN上老的资源文件)并想从历史记录中完全移除,可以这样:

$ git filter-branch --tree-filter ‘rm -f *.class‘ HEAD

如果你已经将其推送至origin,并提交了一些垃圾内容,你同样可以推送之前在本地系统这样做:

$ git filter-branch --tree-filter ‘rm -f *.class‘ origin/master..HEAD

Miscellaneous Tips 各种各样的技巧

21.你看过的前面的引用

如果你知道你之前看到的SHA-1数(版本号),并需要进行一些重置/回滚,可以使用reflog命令查询最近查看的sha – 1数(版本号):

$ git reflog$ git log -g # Same as above, but shows in ‘log‘ format

22. 分支命名

一个有趣的小技巧,不要忘记分支名不仅仅限于a-z和0-9,在名字中使用/和.用于命名伪命名空间和版本控制,也是个不错的主意,例如:

$ # Generate a changelog of Release 132$ git shortlog release/132 ^release/131$ # Tag this as v1.0.1$ git tag v1.0.1 release/132

23. 找到Dunnit

找出谁在一个文件中改变了一行代码,简单的命令是:

$ git blame FILE

有时候是上一个文件发生了变动(如果你合并两个文件,或者你已经转移到一个函数),这样你就可以使用:

$ # shows which file names the content came from$ git blame -C FILE

有时候需要通过点击来追踪来回的变动,这里有一个不错的内置gui:

$ git gui blame FILE

24. 数据库维护

通常Git并不需要过多的维护,它几乎可以自己搞定,尽管如此你也可以查看数据库使用的统计:

$ git count-objects -v

如果数值过高你可以选择将你的克隆垃圾回收。这不会影响你推送内容或其他人,但它可以让你的命令运行的更快,并使用更少的空间:

$ git gc

它也可以在运行时进行一致性检验:

$ git fsck --full

你可以在后面添加-auto 参数(如果你在服务器跑定时任务时),这在统计数据时是必须的。

当检查的结果是“dangling”或“unreachable”这样的是正常的,这通常是回滚和rebase的结果。 得到“missing” 或 “sha1 mismatch” 这样的结果是不好的…你需要得到专业的帮助!

25. 恢复失去的分支

如果你意外的删除一个分支,可以重新创建它:

$ git branch experimental SHA1_OF_HASH

你可以使用git reflog查看你最近访问过的SHA1数(版本号)

另一个方式就是使用 git fsck —lost-found ,悬空对象(dangling commit )是就是失去HEAD指针的提交,(删除的分支只是失去了HEAD指针成为悬空对象)

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4645249.html

时间: 2024-10-02 20:59:12

[批处理教程之MySQL]001.MySQL 常用命令大全的相关文章

[批处理教程之Git]001.Git 常用命令大全

基本技巧 1.安装后的第一步 安装git后,第一件事你需要设置你的名字和邮箱,因为每次提交都需要这些信息. $ git config --global user.name "Some One"$ git config --global user.email "[email protected]" 2.是基于指针的 git上的所有东西都是储存在文件里的,当你创建一次提交时,它会创建一个包含你的提交信息和相关数据(名字,邮箱,日期/时间.上一次提交等等) 的文件并连接一

[批处理教程之Shell]002.Linux 常用命令大全

这一次收集的是比较基础的 Linux 命令,其实 Linux 命令未必每个都要记住,只要在用到时能查阅到需要的命令的用法. 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 – (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinf

MySQL常用命令大全

https://www.centos.bz/2011/07/mysql-frequently-used-commands/ MySQL常用命令大全,布布扣,bubuko.com

mysql常用命令大全 mysql常用命令总结

本文介绍下,mysql中常用的一些命令,包括创建与修改数据库.数据库中的表,mysql的权限管理命令grant.revoke等的用法. 创建与管理mysql数据库的常用命令:1,使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES; 2,创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA; 3,选择创建的数据库mysql> USE MYSQLDATA; (按回车键出现Database changed 时

Mysql数据库操作常用命令

转自微信公众号“MySQL数据库”:http://mp.weixin.qq.com/s?__biz=MzIyNjIwMzg4Ng==&mid=2655293044&idx=1&sn=e312934e5115105fdbe5da12af150276&scene=0#wechat_redirect [全了]Mysql数据库操作常用命令 2016-07-21 MySQL数据库 1.MySQL常用命令 create database name; 创建数据库 use database

MySql 管理操作常用命令

登陆mysql mysql -u username -p 创建用户名配置权限,这里为该用户配置tablename表的全部权限,也可以指定 GRANT ALL PRIVILEGES ON tablename.* TO 'username'@'hostname' IDENTIFIED BY 'password'; 删除用户权限,使用revoke操作 REVOKE ALL PRIVILEGES ON table.* FROM 'username'@'host'; 删除一个用户 DROP USER ‘u

查看mysql状态的常用命令

在mysql客户端输入"show status"之后将会看到如下输出: 如果想要查看某个具体的值,可以使用如下命令: show status LIKE "%具体变量%"; Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量. Aborted_connects 尝试已经失败的MySQL服务器的连接的次数. Connections 试图连接MySQL服务器的次数. Created_tmp_tables 当执行语句时,已经被创造了的隐含临

web系列教程之php 与mysql 动态网站 。检索 与更新。

接着上次WEb 系列开发之php 与mysql动态网站入门. 个人觉得,学习技术就像一棵大树,主干很重要,枝叶其次.对于学习技术,我们应该分清主次关系.怎么学?为什么要学?有一个较好的分寸. 有时候觉得 国内有些教育,从一开始就从枝叶 细节说的很清楚.说了一大堆,就是很散的感觉,虽然有很多知识.但是学的人呢,并不清楚这个的实际应用, 这样会导致学习兴趣的缺失.个人觉得 就比如 php 和mysql吧,虽然我也不是高手,但就学习上面还是能评论几句的,比如我从表单开始 讲表单的注册,也就是 网站会员

95.更改MySQL的root用户密码,MySQL基本操作的常用命令

更改MySQL的root用户密码 1.首次进入数据库 [[email protected] ~]# /usr/local/mysql/bin/mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, O

CentOS 常用命令大全

下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo [[email protected] /]# grep "CPU" /proc/cpuinfo model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz model