zoukankan      html  css  js  c++  java
  • MySql安装与使用(linux)

    安装 MySQL

    注意:此处安装是yum安装为例:

    MySQL安装

    #yum install mysql-server

    完后显示如下:

    MySQL初始化

    #service mysqld start

    查看端口号(默认端口号:3306)

    ‘#mysql_secure_installation’
    Enter current password for root (enter for none ):请输入当前root用户的密码,如果没有按回车,注意此root并非linux的root用户。
    Set root password ?是否设置root密码?
    需要设置的密码:Vqdqi0oTVejf
    Remove anonymous users? [Y/n] 是否移除匿名用户,选择移除(Y)
    Disallow root login remotely? [Y/n] 是否允许root远程登录(默认不允许)
    Remove test database and access to it? [Y/n] 是否移除测试数据库(建议先不移除)
    Reload privilege tables now? [Y/n] 是否重新加载权限表(当我们更改了mysql用户相关的信息之后建议去重载权限)

    MySQL的启动控制

    语法:service mysqld start/stop/restart
    进入mysql的方式:

    mysql -u 用户名 -p 密码

    退出MySQL到Linux命令行:
    mysql>exit

    默认目录/文件位置(了解)

    数据库存储目录: /var/lib/mysql
    配置文件: /etc/my.cnf

    Mysql的基本操作

    1.名词介绍

    		以Excel文件举例:
    		数据库:可以看作是整个excel文件。
    		数据表:可以看作是一个excel文件中的工作表。
    		行(记录):可以看作是一个工作表中的一行。
    		列(字段):可以看作是一个工作表中的一列。
    

    2.库操作

    		以下命令在MySQL终端命令行中执行(大小写均可):
    		SHOW   DATABASES;                                       //显示当前MySQL中全部的数据库
    		CREATE DATABASE 库名;                    //创建数据库
    		DROP DATABASE  库名;                     //删除数据库
                        USE  库名;                                      //切换数据库
              
                       SHOW DATABASES;              //执行的效果
    

                       创建数据库:创建yunwei数据库
                      `mysql>CREATE DATABASE yunwei;`
    


    删除数据库:删除yunwei数据库
    mysql>DROP DATABASE yunwei;

    切换数据库:切换到test数据库
    mysql>use test;

    3.表操作

    	SHOW TABLES;                                     //显示当前数据库中所有的表名(必须先use数据库)
    	CREATE  TABLE   表名称                                 //在当前数据库下创建数据表
    	(
    	列名称 1   数据类型  [NOT  NULL  AUTO_INCREMENT],
    	列名称 2   数据类型,
    	列名称 3   数据类型,
    	……,
    	PRIMARY  KEY(主键字段名)
    	);
    	常见的数据类型:int (整型),char (定长字符),varchar(不定长字符)
    	主键一般就是序号所在的那一列(主键不能重复)
    	
    	DESC  表名;                         //描述一个数据表(查看表结构)
    	DROP TABLE  [IF  EXISTS]  表名;                  //删除一个数据表
    	案例:使用上述的语法
    	查看所有的数据表
    

    	创建数据表(去test库中创建)
    		id 字段 ,   11位整型,不为空, 自增, 主键
    		username字段, varchar类型, 20长度
    		password字段, char雷子能够, 30长度
    	SQL (standard query language)语句:
    	create table xg(
    		id int(11) not null auto_increment,
    		username varchar(20),
    		password char(32),
    		PRIMARY KEY(id));
    

    查看表结构:

    删除数据表:

    4.记录/字段操作(重点)

    4.1,增加记录

    语法1:INSERT INTO  表名称 VALUES  (值1,值2,……..);
    语法2:INSERT INTO  表名称(列1,列2,……) VALUES (值1,值2,…….);
    
    案例:往数据表xg表中新增一个记录username为zhangsan,password为123456(加密结果E10ADC3949BA59ABBE56E057F20F883E)
    SQL语句:
    

    insert into xg(username,password) values ('zhangsan','E10ADC3949BA59ABBE56E057F20F883E');

    4.2,更新记录

    语法:UPDATE  表名称  SET  列名称 1  =  新值1,列名称2 = 新值 2….  WHERE  行名称 = 某值;
    案例:使用更新语句更新id大于等于2的记录,将其密码改为:6CA5AC1929F1D27498575D75ABBEB4D1
    SQL语句
    	`UPDATE xg SET password='6CA5AC1929F1D27498575D75ABBEB4D1' WHERE id>=2;`
    


    以后在执行影响行数的sql操作的时候一定需要注意条件是否写错或者漏写。

    4.3,查询记录

    SELECT 列名称1,列名称2…..  FROM  表名称  WHERE  条件;
    SELECT * FROM 表名称 WHERE 条件;
    案例:查询刚才新增的记录
    只查询用户和密码,并且是id=2的用户:
    `SELECT username,password  FROM xg WHERE id =2;`
    


    查询全部:
    SELECT * FROM xg;

    4.4,删除记录

    	DELETE  FROM   表名称  WHERE 行名称 = 值;
    	
    	案例:删除id为2的记录
    	SQL语句:
    

    DELETE FROM xg WHERE id=2;

    5.备份与还原(重点)

    5.1,备份(导出)

    	全量备份(数据+结构):
    

    #mysqldump -uroot -p123456 -A >备份文件路径 //-A 表示全部数据库(all)
    指定库备份(数据+结构):
    #mysqldump -uroot -p123456 库名 > 备份文件路径
    多个库备份(数据+结构):
    #mysqldump -uroot -p123456 --databases db1 db2 > 备份文件路径
    建议:备份成 xxx.sql (xxx.tar.gz) 的形式

    	案例:备份整个库
    	`[root@hadoop ~]# mysqldump -uroot -pVqdqi0oTVejf -A >/root/sql_201804061609.sql`
    

    案例:每1分钟自动备份1次test数据库

    计划认为编写:

    等待几分钟观察目录变化

    5.2,还原(导入)

    还原部分(1)mysql命令行source方法  和 (2) 系统命令行方法
    1.还原全部数据库:
    (1)mysql命令行:mysql > source 备份文件路径
    (2)系统命令行:#mysql -uroot -p123456  < 备份文件路径
    2.还原单个数据库(需要指定数据库)
    (1)mysql > use  库名
    mysql> source 备份文件路径
    (2)#mysql  -uroot  -p123456  库名 < 备份文件路径
    3.还原单个数据库的多个表(需指定数据库)
    

    案例1:人为删除xg表(模拟数据表丢失),然后通过最后一次备份还原数据表。
    

    先删除数据表

    还原操作:

    案例2:需要还原sql文件(mobile.sql 31万条数据)

    设置Mysql连接字符集:
    mysql>set names utf8; 【三码一致,服务器端+传输过程中+客户端】
    SELECT * FROM mobile.sql

    四.扩展
    1.mysql的远程管理工具
    分为两大类:B/S:架构,C/s架构。
    B/S:B是指浏览器,S是指服务器。例如:百度搜索应用就属于BS架构软件。
    C/s:C是指客户端,S是指服务器。例如:QQ ,电脑端微信等应用程序都是CS架构。
    在BS中,mysql有个典型的管理工具:PMA(phpMyAdmin)

    BS端典型的:

    CS中比较典型的软件:navicat,mysql workbrach

    要解决的问题:允许mysql远程登录

    a.先进入数据库选择mysql数据库;
    b.执行sql语句:select host,user from user;

    FQDN???
    c.将其中的一个记录的host值改为“%”,表示可以允许任何地方登录

    d.刷新权限表或者重启mysql
    

    刷新权限:mysql>flush privileges;

       e.navicat登陆成功
    

  • 相关阅读:
    python之生成器
    Python 类(一)
    Python OOP(面向对象编程)
    python 静态方法、类方法(二)
    记一个有想法没能力实现的产品形态——实时公交
    ubuntu12.04离线安装libjpeg62-dev
    linux内核container_of宏定义分析
    signal函数理解或者void (*signal(int signum,void(*handler)(int)))(int)理解
    HttpServlet cannot be resolved to a type解决方法
    ubuntu12.04不能记住上次编辑位置的解决方案
  • 原文地址:https://www.cnblogs.com/Peanut-hyl/p/10575015.html
Copyright © 2011-2022 走看看