MySql安装与使用(linux)

安装 MySQL

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

MySQL安装

#yum install mysql-server
1467146-20190321212418945-1908072982.png

完后显示如下:
1467146-20190321212529009-534070751.png

MySQL初始化

#service mysqld start
1467146-20190321212627626-1111773846.png

查看端口号(默认端口号:3306)
1467146-20190321212659519-599795062.png

‘#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用户相关的信息之后建议去重载权限)
1467146-20190321213011800-381311111.png

MySQL的启动控制

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

mysql -u 用户名 -p 密码

1467146-20190321213235976-1658651298.png

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

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

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

Mysql的基本操作

1.名词介绍

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

2.库操作

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

1467146-20190321213938122-1092903763.png

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

1467146-20190321214014039-1971911731.png
删除数据库:删除yunwei数据库
mysql>DROP DATABASE yunwei;
1467146-20190321214239632-873659040.png
切换数据库:切换到test数据库
mysql>use test;
1467146-20190321214337870-1954997261.png

3.表操作

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

1467146-20190321214433341-12944498.png

    创建数据表(去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));

1467146-20190321214519019-950597110.png

查看表结构:
1467146-20190321214551440-641513023.png

删除数据表:
1467146-20190321214611897-1360686731.png

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');
1467146-20190321214834472-2092029062.png

4.2,更新记录

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

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

4.3,查询记录

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

1467146-20190321215024791-1757757503.png
查询全部:
SELECT * FROM xg;
1467146-20190321215104273-1022301183.png

4.4,删除记录

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

DELETE FROM xg WHERE id=2;
1467146-20190321215202581-1410868072.png

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`

1467146-20190321215354496-2123041270.png

案例:每1分钟自动备份1次test数据库
1467146-20190321215427686-1209719280.png

计划认为编写:
1467146-20190321215520785-617989896.png
等待几分钟观察目录变化
1467146-20190321215536732-795019566.png

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.还原单个数据库的多个表(需指定数据库)

1467146-20190321215634691-566598168.png

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

先删除数据表
1467146-20190321215656595-891281973.png

还原操作:
1467146-20190321215749573-280717996.png

案例2:需要还原sql文件(mobile.sql 31万条数据)
1467146-20190321215807632-1926158611.png
设置Mysql连接字符集:
mysql>set names utf8; 【三码一致,服务器端+传输过程中+客户端】
SELECT * FROM mobile.sql
1467146-20190321215830195-1638992507.png

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

BS端典型的:
1467146-20190321215852932-1297500921.png

CS中比较典型的软件:navicat,mysql workbrach
1467146-20190321215927692-545932027.png

要解决的问题:允许mysql远程登录
1467146-20190321215946110-1836328353.png
a.先进入数据库选择mysql数据库;
b.执行sql语句:select host,user from user;
1467146-20190321220006747-333689846.png
FQDN???
c.将其中的一个记录的host值改为“%”,表示可以允许任何地方登录
1467146-20190321220027118-59360796.png

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

刷新权限:mysql>flush privileges;
1467146-20190321220050208-1018897091.png

   e.navicat登陆成功

1467146-20190321220114244-1987604047.png

1467146-20190321220122607-1048022066.png

转载于:https://www.cnblogs.com/Peanut-hyl/p/10575015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值