第十八章 学会使用简单的MySQL操作

在前面两个章节中已经介绍过MySQL的安装了。可是光会安装还不够。还须要会一些主要的相关操作。当然了,关于MySQL的内容也是非常多的。仅仅只是对于linux系统管理员来讲,一些主要的操作已经能够应付日常的管理工作了。至于更高深的那是DBA(专门管理数据库的技术人员)的事情了。

更改mysql数据库root的password

首次进入数据库是不用password的

/usr/local/mysql/bin/mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.0.86 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

如今已经进入到了mysql 的操作界面了。

退出的话。直接输入exit就可以。

mysql> exit

Bye

先解释一下上面的命令的含义。-u 用来指定要登录的用户。root用户是mysql自带的管理员账户。默认没有password的,那么怎样给root用户设定password?按例如以下操作:

/usr/local/mysql/bin/mysqladmin -u root password ‘123456’

这样就能够设定root用户的password了。当中mysqladmin就是用来设置password的工具,-u 指定用户,passwod 后跟要定义的password,password须要用单引號或者双引號括起来。另外你或许发现了。敲命令时总在前面加/usr/local/mysql/bin/ 这样非常累。可是直接打mysql 又不能用,这是由于在系统变量$PATH中没有/usr/local/mysql/bin/这个文件夹,所以须要这样操作(假设你的linux能够直接打出mysql这个命令,则不要做这个操作):

vim /etc/profile

在最后增加一行:

export PATH=$PATH:/usr/local/mysql/bin/

保存后执行

source /etc/profile

设定完password后,再来执行最開始进入mysql数据库操作界面的命令:

mysql -u root

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

就报错了,这是由于root用户有password。

mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.0.86 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

须要加-p选项指定password,这时就会提示你输入password了。

当设定password后,假设要想更改password怎样操作呢

mysqladmin -u root -p password "123456789"

Enter password:

输入原来root的password就能够更改password了。

连接数据库

刚刚讲过通过使用mysql -u root -p 就能够连接数据库了。但这仅仅是连接的本地的数据库’localhost’。然后有非常多时候都是去连接网络中的某一个主机上的mysql。

mysql -u user1 -p –P 3306 -h 10.0.2.69

当中-P(大写)指定远程主机mysql的绑定端口,默认都是3306;-h指定远程主机的IP

一些主要的MySQL操作命令

1. 查询当前全部的库

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| test |

+--------------------+

2. 查询某个库的表

mysql> use mysql;

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql |

+---------------------------+

| columns_priv |

| db |

| func |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| host |

| proc |

| procs_priv |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

+---------------------------+

3. 查看某个表的字段

mysql> desc func; //func 是表名

+-------+------------------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+------------------------------+------+-----+---------+-------+

| name | char(64) | NO | PRI | | |

| ret | tinyint(1) | NO | | 0 | |

| dl | char(128) | NO | | | |

| type | enum('function','aggregate') | NO | | NULL | |

+-------+------------------------------+------+-----+---------+-------+

4. 查看某个表的表结构(创建表时的具体结构)

mysql> show create table func;

|Table | CreateTable |

| func | CREATE TABLE `func` (

`name` char(64) collate utf8_bin NOT NULL default '',

`ret` tinyint(1) NOT NULL default '0',

`dl` char(128) collate utf8_bin NOT NULL default '',

`type` enum('function','aggregate') character set utf8 NOT NULL,

PRIMARY KEY (`name`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions' |

+-------+----------------------------------------------------------------------------------------------------------------------

5. 查看当前是哪个用户

mysql> select user();

+----------------+

| user() |

+----------------+

| root@localhost |

+----------------+

6. 查看当前所在数据库

mysql> select database();

+------------+

| database() |

+------------+

| mysql |

+------------+

7. 创建一个新库

mysql> create database db1;

Query OK, 1 row affected (0.04 sec)

8. 创建一个表

mysql> create table t1 ( `id` int(4), `name` char(40));

Query OK, 0 rows affected (0.02 sec)

mysql> desc t1;

+-------+----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| id | int(4) | YES | | NULL | |

| name | char(40) | YES | | NULL | |

+-------+----------+------+-----+---------+-------+

9. 查看当前数据库版本号

mysql> select version();

+-----------+

| version() |

+-----------+

| 5.0.86 |

+-----------+

10. 查看当前系统时间

mysql> select current_date, current_time;

+--------------+--------------+

| current_date | current_time |

+--------------+--------------+

| 2011-05-31 | 08:52:50 |

+--------------+--------------+

11. 查看当前mysql的状态

mysql> show status;

+-----------------------------------+----------+

| Variable_name | Value |

+-----------------------------------+----------+

| Aborted_clients | 0 |

| Aborted_connects | 1 |

| Binlog_cache_disk_use | 0 |

| Binlog_cache_use | 0 |

| Bytes_received | 664 |

| Bytes_sent | 6703 |

这个命令打出非常多东西,显示你的mysql状态。

12. 查看mysql的參数

mysql> show variables;

非常多參数都是能够在/etc/my.cnf中定义的。

13. 创建一个普通用户并授权

mysql> grant all on *.* to user1 identified by '123456';

Query OK, 0 rows affected (0.01 sec)

all 表示全部的权限(读、写、查询、删除等等操作),*.*前面的*表示全部的数据库,后面的*表示全部的表,identified by 后面跟password,用单引號括起来。这里的user1指的是localhost上的user1,假设是给网络上的其它机器上的某个用户授权则这样:

mysql> grant all on db1.* to 'user2'@'10.0.2.100' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

用户和主机的IP之间有一个@,另外主机IP那里能够用%替代,表示全部主机。比如:

mysql> grant all on db1.* to 'user3'@'%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

一些经常使用的sql

1. 查询语句

mysql> select count(*) from mysql.user;

mysql.user表示mysql库的user表。count(*)表示表中共同拥有多少行。

mysql> select * from mysql.db;

查询mysql库的db表中的全部数据

mysql> select db from mysql.db;

查询mysql库db表的db段。

mysql> select * from mysql.db where host like '10.0.%';

查询mysql库db表host字段like 10.0.% 的行,这里的%表示匹配全部,相似于前面介绍的通配符。

2. 插入一行

mysql> insert into db1.t1 values (1, 'abc');

Query OK, 1 row affected (0.00 sec)

t1表在前面已经创建过。

mysql> select * from db1.t1;

+------+------+

| id | name |

+------+------+

| 1 | abc |

+------+------+

3. 更改某一行

mysql> update db1.t1 set name='aaa' where id=1;

Query OK, 1 row affected (0.02 sec)

Rows matched: 1 Changed: 1 Warnings: 0

这样就把原来id为1的那行中的name改成’aaa’

4. 删除表

mysql> drop table db1.t1;

Query OK, 0 rows affected (0.01 sec)

5. 删除数据库

mysql> drop database db1;

Query OK, 0 rows affected (0.07 sec)

6. 备份与恢复库

mysqldump -uroot -p mysql >mysql.sql

这里的mysqldump 就是备份的工具了,-p后面的mysql指的是mysql库,把备份的文件重定向到mysql.sql。

假设恢复的话,仅仅要:

mysql -uroot -p mysql < mysql.sql

关于MySQL的基本操作笔者就介绍这么多。当然学会了这些还远远不够,希望你能够在你的工作中学习到很多其它的知识。假设你对MySQL有非常大兴趣,最好还是深入研究一下,毕竟多学点总没有坏处。假设想学跟多的东西请去查看MySQL官方中文參考手冊(5.1)。

学会使用简单的MySQL操作的更多相关文章

  1. 学会使用简单的 MySQL 常用操作

    一.MySQL 数据库的基本安装 # yum 安装 mysql 版本:5.1.73 [root@mysql ~]# yum install -y mysql-server mysql # 启动 MyS ...

  2. ci框架中model简单的mysql操作

    <?php class SingerModel extends CI_Model { function SingerModel() { //会将数据库对象赋值给CI_Controller的db属 ...

  3. ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...

  4. python爬取信息到数据库与mysql简单的表操作

    python 爬取豆瓣top250并导入到mysql数据库中 import pymysql import requests import re url='https://movie.douban.co ...

  5. mysql简单的sql操作语句

    一,常用.简单的SQL操作语句 1.数据库操作: 1)创建数据库: create database database_name: 创建并设置字符编码 create database database_ ...

  6. Mysql操作初级

    Mysql操作初级 本节内容 数据库概述 数据库安装 数据库操作 数据表操作 表内容操作 1.数据库概述 数据库管理系统叫做DBMS 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建 ...

  7. 第一篇:Mysql操作初级

    Mysql操作初级   Mysql操作初级 本节内容 数据库概述 数据库安装 数据库操作 数据表操作 表内容操作 1.数据库概述 数据库管理系统叫做DBMS 1.什么是数据库 ? 答:数据的仓库,如: ...

  8. oracle常见为题汇总,以及一个简单数据连接操作工厂

    本人软件环境:win8.1 64位操作系统,vs2013,安装好了与oracle数据库对应的客户端         连接oracle数据库.以及操作数据库 1.使用IIS建立网站,浏览网页时候,提示“ ...

  9. MySQL 操作详解

    MySQL 操作详解 一.实验简介 本节实验中学习并实践 MySQL 上创建数据库.创建表.查找信息等详细的语法及参数使用方法. 二.创建并使用数据库 1. 创建并选择数据库 使用SHOW语句找出服务 ...

随机推荐

  1. java 日期validate

    public static boolean isValidDate(String str) { boolean convertSuccess=true; // 指定日期格式为四位年/两位月份/两位日期 ...

  2. Xamarin开发安装Visual Studio 2015 update2报错的解决办法

    Xamarin开发安装Visual Studio 2015 update2报错的解决办法错误信息:update 2 requires a member of the visual studio 201 ...

  3. JZYZOJ 1375 双亲数 莫比乌斯反演

    http://172.20.6.3/Problem_Show.asp?id=1375 网上搜推理图. 有一段没有写莫比乌斯反演都快忘了..数学能力--,定理完全不会推,但是这道题整体来说应该是比较好写 ...

  4. 【贪心】 Codeforces Round #419 (Div. 1) A. Karen and Game

    容易发现,删除的顺序不影响答案. 所以可以随便删. 如果行数大于列数,就先删列:否则先删行. #include<cstdio> #include<algorithm> usin ...

  5. 【多重背包】CDOJ1691 这是一道比CCCC简单题经典的中档题

    #include<cstdio> #include<algorithm> using namespace std; int n,V,w[110],c[110],a[110],f ...

  6. 微信小程序 Session 失效

    微信小程序 Session 失效 微信小程序,前端请求后端,中间多了个微信服务器,所以请求的流程就是 页面--微信服务器--目标服务器 这就导致了一个问题 session 每次请求都是一个新的会话 解 ...

  7. Problem J: 零起点学算法89——程序设计竞赛

    #include<stdio.h> //选择排序法 int main(){ ]; while(scanf("%d",&n)!=EOF){ ;i<n;i++ ...

  8. storm性能优化

    Storm 性能优化 目录 场景假设 调优步骤和方法 Storm 的部分特性 Storm 并行度 Storm 消息机制 Storm UI 解析 性能优化 场景假设 在介绍 Storm 的性能调优方法之 ...

  9. HDU 4658 Integer Partition (2013多校6 1004题)

    Integer Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  10. JS类型判断typeof PK {}.toString.call(obj)

    参考链接:https://www.talkingcoder.com/article/6333557442705696719 先看typeof <!doctype html> <htm ...