Mysql入门基础命令

1    Mysql基本操作

1.1    查询当前数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dev                |
| guohua             |
| jumpserver         |
| mysql              |
| oldboy             |
| oldgirl            |
| performance_schema |
| spdb               |
| wordpress          |
+--------------------+
10 rows in set (0.25 sec)

1.2    查询特定库的表

mysql> use mysql
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> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
28 rows in set (0.00 sec)

1.3   查看特定表的全部字段

mysql> desc db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(60)      | NO   | PRI |         |       |
| Db                    | char(64)      | NO   | PRI |         |       |
| User                  | char(16)      | NO   | PRI |         |       |
| Select_priv           | enum('N','Y') | NO   |     | N       |       |
| Insert_priv           | enum('N','Y') | NO   |     | N       |       |
| Update_priv           | enum('N','Y') | NO   |     | N       |       |
| Delete_priv           | enum('N','Y') | NO   |     | N       |       |
| Create_priv           | enum('N','Y') | NO   |     | N       |       |
| Drop_priv             | enum('N','Y') | NO   |     | N       |       |
| Grant_priv            | enum('N','Y') | NO   |     | N       |       |
| References_priv       | enum('N','Y') | NO   |     | N       |       |
| Index_priv            | enum('N','Y') | NO   |     | N       |       |
| Alter_priv            | enum('N','Y') | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
| Execute_priv          | enum('N','Y') | NO   |     | N       |       |
| Event_priv            | enum('N','Y') | NO   |     | N       |       |
| Trigger_priv          | enum('N','Y') | NO   |     | N       |       |
+-----------------------+---------------+------+-----+---------+-------+
22 rows in set (0.01 sec)
#使用如下命令将建表语句全部列出来
mysql> show create table dbG;
*************************** 1. row ***************************
       Table: db
Create Table: CREATE TABLE `db` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  PRIMARY KEY (`Host`,`Db`,`User`),
  KEY `User` (`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges'
1 row in set (0.00 sec)

1.4    查看当前登录的用户

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

1.5    查看当前正在使用的数据库

mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

1.6    创建一个新库

mysql> create database zabbix;
Query OK, 1 row affected (0.38 sec)

1.7  创建一个新表

mysql> create table user(id int(4),name char(40),tel int(11));      
Query OK, 0 rows affected (0.19 sec)

mysql> show create table userG
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `id` int(4) DEFAULT NULL,
  `name` char(40) DEFAULT NULL,
  `tel` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

1.8    查看当前mysql数据版本

mysql> select version();
+------------+
| version()  |
+------------+
| 5.6.40-log |
+------------+
1 row in set (0.00 sec)

1.9    查看Mysql当前状态

mysql> show status;
+-----------------------------------------------+-------------+
| Variable_name                                 | Value       |
+-----------------------------------------------+-------------+
| Aborted_clients                               | 0           |
| Aborted_connects                              | 14          |
| Binlog_cache_disk_use                         | 0           |
| Binlog_cache_use                              | 0           |
| Binlog_stmt_cache_disk_use                    | 0           |
| Binlog_stmt_cache_use                         | 4           |
| Bytes_received                                | 1343        |
| Bytes_sent                                    | 34853       |
| Com_admin_commands                            | 0           |
| Com_assign_to_keycache                        | 0           |
| Com_alter_db                                  | 0           |
| Com_alter_db_upgrade                          | 0           |
| Com_alter_event                               | 0           |
| Com_alter_function                            | 0           |
| Com_alter_procedure                           | 0           |
| Com_alter_server                              | 0           |
| Com_alter_table                               | 0           |
| Com_alter_tablespace                          | 0           |
| Com_alter_user                                | 0           |
| Com_analyze                                   | 0           |
| Com_begin                                     | 0           |
| Com_binlog                                    | 0           |
| Com_call_procedure                            | 0           |
| Com_change_db                                 | 2           |

1.10    查看Mysql参数

mysql> show variablesG;
*************************** 1. row ***************************
Variable_name: auto_increment_increment
        Value: 1
*************************** 2. row ***************************
Variable_name: auto_increment_offset
        Value: 1
*************************** 3. row ***************************
Variable_name: autocommit
        Value: ON
*************************** 4. row ***************************
Variable_name: automatic_sp_privileges
        Value: ON
*************************** 5. row ***************************
Variable_name: avoid_temporal_upgrade
        Value: OFF

1.11    修改Mysql的参数max_connect_errors

mysql> show variables like 'max_connect%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 100   |
| max_connections    | 151   |
+--------------------+-------+
2 rows in set (0.01 sec)

mysql> set global max_connect_errors = 1000;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'max_connect%';#类似shell命令行*通配符
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 1000  |
| max_connections    | 151   |
+--------------------+-------+
2 rows in set (0.00 sec)
#set global临时更改参数,如果永久修改则需要在/etc/my.cnf配置文件中修改

1.12    查看当前Mysql服务器的队列

mysql> show processlist;
+----+------+------------------+--------+-------------+------+-----------------------------------------------------------------------+------------------+
| Id | User | Host             | db     | Command     | Time | State                                                                 | Info             |
+----+------+------------------+--------+-------------+------+-----------------------------------------------------------------------+------------------+
|  2 | rep  | 10.0.0.251:55984 | NULL   | Binlog Dump | 3109 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL             |
| 23 | root | localhost        | zabbix | Query       |    0 | init                                                                  | show processlist |
+----+------+------------------+--------+-------------+------+-----------------------------------------------------------------------+------------------+
2 rows in set (0.00 sec)
#查看当前Mysql在做什么操作,也可以是否有锁表

1.13    创建一个普通用户并授权

mysql> grant all on *.* to zabbix identified by '123456';
Query OK, 0 rows affected (0.00 sec)
#本地创建一个zabbix用户,授权所有权限
mysql> grant all on zabbix.* to 'zabbix01'@'10.0.0.251' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
#指定特定的网络机器登录mysql数据库并授权zabbix数据库下的所有表
mysql> grant all on zabbix.* to 'zabbix02'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
#指定所有主机登录mysql数据库并授权zabbix数据库下的所有表
mysql> select user,host from mysql.user where user like 'zabbix%';
+----------+------------+
| user     | host       |
+----------+------------+
| zabbix   | %          |
| zabbix02 | %          |
| zabbix01 | 10.0.0.251 |
+----------+------------+
3 rows in set (0.00 sec)

2    Mysql语句操作

2.1    查询语句

第一种查询方式:
mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
|        7 |
+----------+
1 row in set (0.00 sec)
第二种查询方式:
mysql> select * from mysql.user;
mysql> select user,host from mysql.user;  
+-----------+------------+
| user      | host       |
+-----------+------------+
| zabbix    | %          |
| zabbix02  | %          |
| rep       | 10.0.0.%   |
| zabbix01  | 10.0.0.251 |
| root      | 127.0.0.1  |
| root      | localhost  |
| wordpress | localhost  |
+-----------+------------+
7 rows in set (0.00 sec)
mysql> select user,host from mysql.user where user like 'zabbix%';
+----------+------------+
| user     | host       |
+----------+------------+
| zabbix   | %          |
| zabbix02 | %          |
| zabbix01 | 10.0.0.251 |
+----------+------------+
3 rows in set (0.00 sec)

2.2    插入语句

mysql> insert into zabbix.user values(3,'test',1111111111),(4,'boy',222222222);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> select * from zabbix.user where name='test' or name='boy';
+------+------+------------+
| id   | name | tel        |
+------+------+------------+
|    3 | test | 1111111111 |
|    4 | boy  |  222222222 |
+------+------+------------+
2 rows in set (0.00 sec)

2.3    更新表语句

mysql> update zabbix.user set name='girl' where id=3;
Query OK, 1 row affected (1.69 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from zabbix.user where id=3;
+------+------+------------+
| id   | name | tel        |
+------+------+------------+
|    3 | girl | 1111111111 |
+------+------+------------+
1 row in set (0.00 sec)

2.4    清空表语句

mysql> truncate table zabbix.user;
Query OK, 0 rows affected (0.09 sec)

mysql> select * from zabbix.user;
Empty set (0.00 sec)

2.5    删除表语句

mysql> drop table zabbix.user;
Query OK, 0 rows affected (0.34 sec)

mysql> show tables;
Empty set (0.00 sec)

2.6    删除数据库

mysql> show databases like 'zabbix%';
+--------------------+
| Database (zabbix%) |
+--------------------+
| zabbix             |
+--------------------+
1 row in set (0.00 sec)

mysql> drop database zabbix;
Query OK, 0 rows affected (0.12 sec)

mysql> show databases like 'zabbix%';
Empty set (0.00 sec)

3    Mysql数据备份与恢复

3.1    Mysql备份

[root@web01 ~]# mysqldump -u root -p123456 wordpress > /tmp/wordpress_
$(date +%F).sql
Warning: Using a password on the command line interface can be insecure.
[root@web01 ~]# ls -l /tmp/
total 784
-rw-r--r-- 1 root  root  801875 Nov 11 17:33 wordpress_2018-11-11.sql

3.2    Mysql恢复

#删除原wordpress数据库
[root@web01 ~]# mysql -u root -p123456 -e 'drop database wordpress;'
Warning: Using a password on the command line interface can be insecure.
#查看原wordpress数据库是否删除成功
[root@web01 ~]# mysql -u root -p123456 -e "show databases";                  
Warning: Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dev                |
| guohua             |
| jumpserver         |
| mysql              |
| oldboy             |
| oldgirl            |
| performance_schema |
| spdb               |
+--------------------+
#创建空的wordpress数据库
[root@web01 ~]# mysql -u root -p123456 -e "create database wordpress";       
Warning: Using a password on the command line interface can be insecure.
#查看新的wordpress数据是否新建完成
[root@web01 ~]# mysql -u root -p123456 -e "show databases like 'wordpress%'";
Warning: Using a password on the command line interface can be insecure.
+-----------------------+
| Database (wordpress%) |
+-----------------------+
| wordpress             |
+-----------------------+
#从以备份的wordpress恢复wordpres数据库
[root@web01 ~]# mysql -u root -p123456 wordpress < /tmp/wordpress_2018-11-11.sql 
Warning: Using a password on the command line interface can be insecure.
#检查wordpress库是否恢复成功
[root@web01 ~]# mysql -u root -p123456 -e "use wordpress;show tables;"  
Warning: Using a password on the command line interface can be insecure.
+-------------------------+
| Tables_in_wordpress     |
+-------------------------+
| wolf_commentmeta        |
| wolf_comments           |
| wolf_links              |
| wolf_options            |
| wolf_postmeta           |
| wolf_posts              |
| wolf_term_relationships |
| wolf_term_taxonomy      |
| wolf_termmeta           |
| wolf_terms              |
| wolf_usermeta           |
| wolf_users              |
+-------------------------+
原文地址:https://www.cnblogs.com/Wolf-Dreams/p/9942876.html