折腾 WordPress 多少要接触到 MySQL 的一些操作,比如,玛思阁之前重装 postview 插件后发现所有的 view 数据都被清空了!只好到 phpMyAdmin 后台去进行 wp_postmeta 表的部分数据恢复,其中就会用到下文【根据条件导出 mysql 的指定表】的方法,将 meta_key=views 的栏位对应的 meta_value 值全部恢复过来。所以,以下内容很基础,但是却很实用,特地搜集整理,以备不时之需。
一、终端登陸 Mysql
1 | $mysql –u[用戶名] –p[password] |
例:账号:root,密码:123456,登陆成功的情形如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@localhost ~]# mysql -uroot -p123456 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 Server version: 5.5.34 MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement. mysql> |
二、创建用户
①、创建只能本地登陆的用户 newuser,允许在 dbname 上进行 select,insert,update,delete 操作,密码 abc.123:
1 | mysql> grant select,insert,update,delete on dbname.* to newuser@localhost Identified by “abc.123”; |
②、创建允许远程登陆的用户 newuser,允许在 dbname 上进行 select,insert,update,delete 操作,密码 abc.123:
1 | mysql> grant select,insert,update,delete on dbname.* to ‘newuser’@‘%’ Identified by “abc.123”; |
最后刷新 MySQL 权限即可:
1 | mysql> flush privileges; |
三、创建,删除和最基本查询
Ps:举例数据库名为 dbname,表为 mytable
1 2 3 4 5 6 7 8 | 显示数据库 mysql->show databases; 创建数据库 mysql->create database dbname; 删除数据库 mysql->drop database dbname; 选择数据库 mysql->use dbname 创建表 mysql->create table mytable(name varchar(20),sex(char(1),birth date); 删除表 mysql->drop table mytable; 显示表的内容 mysql->show tables; 显示表的结构 mysql->describe mytable; |
四、更新操作
1、对列的操作:
1 2 | 在一个表中增加一条字段 mysql->alter table yourtable add name varchar(20)not null; 删除一个字段 mysql->alter table yourtable drop name ; |
2、对行的操作:
1 2 3 4 5 | 插入一条记录 mysql->insert into mytable values(‘summer’,‘m’,‘1983-08-24’); 删除一条记录 mysql->delete from mytable where name=‘summer’; 修改一条记录 mysql->update mytable set sex=‘vm’ where name=‘summer’; 插入多条记录 mysql->insert into mytable select * from yourtable; 根据条件插入 mysql->insert into mytable select * from yourtable where `key`=‘value’; |
五、简单查询:
1.在查询结果中显示列名
1 2 | a.用as关键字:select name as ‘姓名’ from students order by age b.直接表示:select name ‘姓名’ from students order by age |
2.精确查找:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | a. 用in限定范围:select * from students where native in (‘湖南’, ‘四川’) b. between…and:select * from students where age between 20 and 30 c. 比较测试符:(包括=,<>,<,<=,>,>=)select * from students where name = ‘李山’ d. like:select * from students where name like ‘李%’ (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:‘% 李%’;若是第二个字为李,则应为‘_李%’或‘_李’或‘_李_’。) e. []匹配检查符:select * from courses where cno like ‘[AC]%’ (表示或的关系,与“in(…)”类似,而且“[]”可以表示范围,如:select * from courses where cno like ‘[A-C]%’)注:关于这个字符我在mysql里用的时候mysql把它当两个普通自符处理的。 [^]stockname like ‘[^F-M]%’ ——-— (^排除指定范围) f. count()求总数,如:select count(*) from students (求学生总人数) g. avg(列)求平均,如:select avg(mark) from grades where cno=’B2’ h. max(列)和min(列),求最大与最小 |
六、其他语句整理
1. 根据条件导出 mysql 的指定表(即部分数据导出,WordPress 网站应该用得到):
1 | mysqldump -h mysql服务器IP -u用户名 -p密码 数据库名表名 —where=“筛选条件”>导出文件路径; |
恢复方法:先用 “use dbname” 选定数据库,然后使用 “source sql 的文件路径”命令即可恢复。
例:从 wp_blog 数据库的 wp_postmeta 表中导出 meta_key=views 的数据到 /home/xyx/Temp.sql 这个文件中
1 | mysqldump –uroot –p123456 wp_blog wp_postmeta —where=“meta_key=views” > /home/xyx/Temp.sql |
如果是在终端可如下恢复:
1 2 3 4 5 6 7 | mysql> use mydb Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> source /home/xyx/Temp.sql Query OK, 30 rows affected (0.00 sec) |
当然,也可以进入 phpMyAdmin 中,选定指定表格导入 Temp.sql 即可。
本文将持续更新,收集更多的实用 Mysql 命令。