MySQL常用命令


最近因频繁更换服务器跟域名,所以很多时候需要用到SQL命令进行便捷操作,使用命令能大大提高部署网站的效率!

我收集一些比较常用易懂的SQL命令分享给大家!

[info]一、连接MySQL[/info]

格式: MySQL -h主机地址 -u用户名 -p用户密码
或者: mysql -u 用户名 -p // 回车后要求输入密码,密码不可见

[infobox title="1、连接到本机上的MYSQL"]
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是如果-p后带有用户密码,那么-p与密码之间必须没有空格,否则让你重新输入密码.例如以下都是合法的登陆:(帐号:xhll 密码:xhll123)
mysql -u xhll -p
mysql -u xhll -p
mysql -u xhll -p xhll123

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

[infobox title="2、连接到远程主机上的MYSQL"]
假设远程主机的IP为:110.110.110.110,用户名为xhll,密码为xhll123。则键入以下命令:
mysql -h110.110.110.110 -u xhll -p xhll123;

(注:u与root之间可以不用加空格,其它也一样)[/infobox]

[infobox title="3、退出MYSQL命令"]
exit

(回车)

[/infobox]

 

[info]二、修改密码[/info]

格式:mysqladmin -u用户名 -p旧密码 password 新密码
[infobox title="1、给xhll加个密码ab12"]
首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u xhll -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。[/infobox]

[infobox title="2、将xhll的密码改为ab345"]
mysqladmin -u xhll -p ab12 password ab345
(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)[/infobox]

[infobox title="3、命令行修改xhll密码"]
mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’xhll’;
mysql> FLUSH PRIVILEGES;[/infobox]

[infobox title="4、显示当前的user"]
mysql> SELECT USER();[/infobox]

 

[info]三、增加新用户[/info]

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
[infobox title="1、增加一个用户xhll1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限"]
首先用root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to xhll1”%" Identified by “abc”;
但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了。[/infobox]
[infobox title="2、增加一个用户xhll2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作"]
localhost指本地主机,即MYSQL数据库所在的那台主机。这样用户即使用知道xhll2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to xhll2@localhost identifiedby “abc”;
如果你不想xhll2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to xhll2@localhost identified by “”;[/infobox]

[info]四、操作技巧[/info]

1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。

[info]五、对数据库的操作[/info]

[infobox title="1、显示当前数据库服务器中的数据库列表"]
mysql> SHOW DATABASES;
注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。[/infobox]

[infobox title="2、显示数据库中的数据表"]
mysql> USE 库名;
mysql> SHOW TABLES;[/infobox]

[infobox title="3、显示use的数据库名"]
mysql> SELECT DATABASE();[/infobox]

[infobox title="4、建立数据库"]
mysql> CREATE DATABASE 库名;[/infobox]

[infobox title="5、删除数据库"]
mysql> DROP DATABASE 库名;[/infobox]

[infobox title="6、导入.sql文件命令"]
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;
也可以在DOS环境下键入以下命令进行导入:
mysql -uroot -proot databasename < databasename.sql
注意:导入前请保证mysql中必须有databasename这个数据库;[/infobox]

[info]六、备份数据库[/info]

注意,mysqldump命令在DOS的 mysql\bin 目录下执行,不能在mysql环境下执行,因此,不能以分号“;”结尾。若已登陆mysql,请运行退出命令mysql> exit
[infobox title="1.导出整个数据库"]
导出文件默认是存在mysql\bin目录下
mysqldump -u用户名 -p数据库名 > 导出的文件名
mysqldump -uroot -p123456 database_name > outfile_name.sql[/infobox]
[infobox title="2.导出一个表"]
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql[/infobox]

[infobox title="3.导出一个数据库结构"]
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table[/infobox]

[infobox title="4.带语言参数导出"]
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql[/infobox]

[info]七、wordpress批量修改[/info]

[infobox title="1、批量修改文章内容"]
替换之前写过的所有文章中的某些内容,如更换博客的名称,更换博客的网址,更换文章配图的链接等等:
UPDATE wp_posts
SET post_content = replace( post_content, '熙慧来琳', '熙慧来琳-XHLLin.com' );
将所有文章中的“熙慧来琳”,全部替换成“熙慧来琳-XHLLin.com”。因为文章内容在数据库中是以HTML代码形式存储的,所以以上SQL语句同样可以替换HTML代码。
如果你只是想更改文章插图的链接,而不想影响其他的链接,可以使用以下SQL语句,所有src="xhll.xyz被替换成了src="xhllin.com
UPDATE wp_posts
SET post_content =
REPLACE (post_content, 'src="xhll.xyz', 'src="xhllin.com');
如果你是以图片附件形式上传的话,需要更改图片附件的GUID
UPDATE wp_posts
SET guid = REPLACE (guid, 'xhll.xyz', 'xhllin.com')
WHERE post_type = 'attachment';[/infobox]
[infobox title="2、批量修改文章摘要"]
将所有文章摘要中的“熙慧来琳” ,全部替换成“熙慧来琳-XHLLin.com”。
UPDATE wp_posts
SET post_excerpt = replace( post_excerpt, '熙慧来琳', '熙慧来琳-XHLLin.com' );
[/infobox]
[infobox title="3、批量修改文章的作者"]
假设你的博客有两名注册用户,张三和李四,将张三的所有文章划归到李四名下
UPDATE wp_posts
SET post_author = 李四用户id
WHERE post_author = 张三用户id;
那如何获得 李四的用户id 和 张三的用户id 呢?你可以执行以下SQL语句:
SELECT ID, user_nicename, display_name FROM wp_users;
这时将列出你博客上所有的注册用户的ID,昵称和公开显示的名称,你现在就可以找到对应用户的ID了,如下图,zhangsan的ID为2,lisi的ID为5:
用户id
你的SQL就可以这样写了:
UPDATE wp_posts
SET post_author = 5
WHERE post_author = 2;[/infobox]
[infobox title="4、批量修改文章评论者的网站URL"]
将留言者所有旧的网站链接xhll.xyz,更改为新的网址
UPDATE wp_comments
SET comment_author_url =
REPLACE( comment_author_url, 'xhll.xyz', 'xhllin.com' )
[/infobox]
[infobox title="5、禁用所有文章的pingback功能"]
UPDATE wp_posts
SET ping_status = 'closed';[/infobox]
[infobox title="6、删除所有文章的修订版本"]
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';[/infobox]
[infobox title="7、删除某个评论者的所有评论"]
如果你的博客想要封杀某人,并删除其在你博客的所有留言,可以使用以下SQL语句。
(1)根据留言者的博客URL进行删除,以下SQL语句将删除所有URL为 www.xhll.xyz 的评论
DELETE from wp_comments
WHERE comment_author_url LIKE '%www.xhll.xyz%';
(2)根据留言者的昵称进行删除,以下语句将删除所有昵称为 xhll 的评论
DELETE from wp_comments
WHERE comment_author = 'xhll';
(2)根据留言者的Email进行删除,以下语句将删除所有Email为 xhll@xhllin.com 的评论
DELETE from wp_comments
WHERE comment_author_email = 'xhll@xhllin.com';[/infobox]
[infobox title="8、替换所有评论中的敏感词汇"]
以下语句将所有评论中的 fuck,替换成 **,替换内容根据你的需要来
UPDATE wp_comments
SET comment_content = replace( comment_content, 'fuck', '**' );[/infobox]
[infobox title="9、关闭文章评论功能"]
(1) 关闭所有旧文章的评论:
以下语句将禁止2012-01-01之前发表的所有文章的评论,你可以根据需要修改日期:
UPDATE wp_posts
SET comment_status = 'closed'
WHERE post_date < '2012-01-01' AND post_status = 'publish';
(2) 关闭所有文章的评论:
UPDATE wp_posts
SET comment_status = 'closed' WHERE post_status = 'publish';[/infobox]

[info]八、wordpress其他修改[/info]

[infobox title="1、更改WordPress网站的目标URL"]

把WordPress博客(模板文件、上传内容&数据库)从一台服务器移到另一台服务器后,或者全站使用SSL证书需转换HTTPS,你需要告诉WordPress你的新博客地址。
将https://www.xhll.xyz换成https://www.xhllin.com。

UPDATE wp_options
SET option_value = replace(option_value, 'https://www.old-site.com', 'https://blog.doucube.com')
WHERE option_name = 'home' OR option_name = 'siteurl';

然后利用下面的命令更改wp_posts里的URL:

UPDATE wp_posts SET guid = replace(guid, 'https://www.xhll.xyz','https://www.xhllin.com');
最后,搜索文章内容以确保新URL链接与原链接没有弄混:

UPDATE wp_posts SET post_content = replace(post_content, 'https://www.xhll.xyz', 'https://www.xhllin.com');

[/infobox]

[infobox title="2、更改默认用户名Admin"]

把其中的XHLL替换成XHLLIN。

UPDATE wp_users SET user_login = 'XHLL' WHERE user_login = 'XHLLIN';

[/infobox]

[infobox title="3、手动重置WordPress密码"]

把“XHLL”用户更改密码为“AB123”

UPDATE 'wordpress'.'wp_users' SET 'user_pass' = MD5('AB123')
WHERE 'wp_users'.'user_login' ='XHLL' LIMIT 1;

[/infobox]

2