Linux安装卸载Mysql与基本操作

一、安装Mysql软件

1.下载rpm包

本文章使用的系统是Linux,所以你需要下载一个mysql的rpm包

https://dev.mysql.com/downloads/

根据系统版本下载,CentOS RedHat点Yum Repository ,Debian,Ubuntu点APTRepository

看不懂英文的话点下面:

https://pan.baidu.com/s/1e_BiwHa5Ghey4FNtKYhcmw

ar72

2.安装rpm包

 下载后会有一个tar结尾的包,解压然后yum安装

 需要安装的mysql支持包,输入命令 yum -y install mysql-community*

  1. ./mysql-community-client-5.7.17-1.el7.x86_64.rpm                                #客户端应用程序
  2. ./mysql-community-common-5.7.17-1.el7.x86_64.rpm                          #数据库和客户端库共享文件
  3. ./mysql-community-devel-5.7.17-1.el7.x86_64.rpm                               #客户端应用程序的库和头文件
  4. ./mysql-community-embedded-5.7.17-1.el7.x86_64.rpm                       #嵌入式函数库
  5. ./mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm          #嵌入式兼容函数库  
  6. ./mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm             #头文件和库文件作为mysql的嵌入式库文件
  7. ./mysql-community-libs-5.7.17-1.el7.x86_64.rpm                                  #Mysql数据库客户端应用程序的共享库
  8. ./mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm                     #客户端应用程序的共享兼容库
  9. ./mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm          #mysql最小化调试库
  10. ./mysql-community-server-5.7.17-1.el7.x86_64.rpm                             #服务端应用程序
  11. ./mysql-community-test-5.7.17-1.el7.x86_64.rpm                                 #测试库

 

3.启动并查看状态

  1. [root@host50 ~]# systemctl start mysqld   //启动mysql服务
  2. [root@host50 ~]# systemctl enable mysqld   //设置开机自启
  3. [root@host50 ~]# systemctl status mysqld    //查看mysql服务状态 提示running代表运行成功
  4. ● mysqld.service - MySQL Server
  5. Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
  6. Active: active (running) since 二 2018-08-28 10:03:24 CST; 8min ago
  7. Docs: man:mysqld(8)
  8. http://dev.mysql.com/doc/refman/en/using-systemd.html
  9. Main PID: 4284 (mysqld)
  10. CGroup: /system.slice/mysqld.service
  11. └─4284 /usr/sbin/mysqld --daemonize --pid-file=/var/r...
  12.  
  13. 8月 28 10:02:56 localhost.localdomain systemd[1]: Starting MySQ...
  14. 8月 28 10:03:24 localhost.localdomain systemd[1]: Started MySQL...
  15. Hint: Some lines were ellipsized, use -l to show in full.

4.第一次使用mysql

 如果是第一次使用mysql,你需要去日志文件中查看mysql默认生成的密码

  1. [root@host50 ~]#grep -i 'password' /var/log/mysqld.log   //标红的为默认密码,每个人不一样
  2. 2017-04-01T18:10:42.948679Z 1 [Note] A temporary password is generated for root@localhost: mtoa>Av<p6Yk
  3. //使用初始密码登录,使用root用户,登录成功后,进入SQL操作环境
  4. [root@host50 ~]# mysql -u root -p'mtoa>Av<p6Yk' //初始密码登录,
  5. mysql: [Warning] Using a password on the command line interface can be insecure.
  6. Welcome to the MySQL monitor. Commands end with ; or \g.
  7. Your MySQL connection id is 11
  8. Server version: 5.7.17
  9.  
  10. Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
  11.  
  12. Oracle is a registered trademark of Oracle Corporation and/or its
  13. affiliates. Other names may be trademarks of their respective
  14. owners.
  15.  
  16. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  17. mysql>                                     

5.修改默认密码

 mysql要求修改默认密码,否则你没有权限做任何操作 

 如果你要修改mysql密码,你应该知道当前的默认密码策略(默认是2)和密码长度

密码策略

0:只验证长度

1:密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

2:密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。且生成目录

0 or LOW Length
 
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
 
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

 

  1. mysql> show databases;
  2. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement //提示必须修改密码
  3.  
  4. mysql>set global validate_password_policy=0; //只验证长度
  5. Query OK, 0 rows affected (0.00 sec)
  6. mysql>set global validate_password_length=6; //修改密码长度,默认值是8个字符
  7. Query OK, 0 rows affected (0.00 sec)
  8. mysql> alter user root@”localhost” identified by "123456"; //修改登陆密码
  9. Query OK, 0 rows affected (0.00 sec)
  10. mysql>exit
  11. [root@host50 ~]# mysql -uroot –p123qqq…A  //再次登录\
  12. mysql> show databases; //查看数据库
  13. +--------------------+
  14. | Database |
  15. +--------------------+
  16. | information_schema |
  17. | mysql |
  18. | performance_schema |
  19. | sys                |
  20. +--------------------+
  21. 4 rows in set (0.00 sec)

6.卸载mysql

1)查找是否安装mysql包

rpm -qa | grep -i mysql

2)停止mysql服务

systemctl stop mysqld

3)删除mysql服务包

yum -y remove mysql*

如果提示你未找到依赖包

你需要一条一条的删除这些包,默认大概8-12个包,输出命令 rpm -qa | grep -i mysql 

可以先删除mysql-community-common这个包

4)清除mysql遗留文件

for i in `find / -name mysql`

do

rm -fr $i

done

5)删除mysql配置文件

MySQL的/etc/my.cnf文件不会删除,需要手动删除

rm -f /etc/my.cnf

二、Mysql的基本操作

1.本地登录mysql和远程登录mysql

 如果你想远程别人的数据库,首先确保你自己的主机上安装了mysql软件

  1. [root@dbsvr1 ~]# mysql -uroot -p123456         //紧挨着选项,不要空格
  2. [root@dbsvr1 ~]# mysql -h 127.0.0.1 –u root –p  //加入-h选项代表远程连接

2.查看/删除/创建库的相关操作

  查看库:show databases;  //查看所有库

             select database();  //查看当前使用的库

  选择库:use 库名;

  创建库: create database 库名

  删除库: drop database 库名;

3.查看/删除/创建表的相关操作

查看表: show tables;

查看表字段 :  desc 表名;

                      desc 表名\G; //查看表结构,以列表形式展现,末尾不用分号

查看表编码 : show create table 表名;

创建表 :  create table 表名 (字段名 字段类型);

修改表名:alter table 原始名 rename 被修改名;

删除表:  drop tabke 表名;

4.修改字符集

若要修改MySQL服务的默认字符集,可以更改服务器的my.cnf配置文件,添加character_set_server=utf8 配置,然后重启数据库服务,其他字符集更改操作https://blog.csdn.net/ck784101777/article/details/100574268

  1. [root@dbsvr1 ~]# vim /etc/my.cnf                         //修改运行服务配置
  2. [mysqld]
  3. .. ..
  4. character_set_server=utf8
  5.  
  6. [root@dbsvr1 ~]# systemctl restart mysqld                 //重启服务

 

 三、表字段类型

1.字符类型

 固定大小字符/非固定大小字符

 char ; varchar

2.数值类型

整数/浮点型

 int ; bigint ; tinyint ; float ; double 

3.时间类型

  • now( ) year( ) month( ) day( ) date( ) time( )
  • curtime( ) curdate( )
  1. mysql> SELECT now();
  2.  2019-07-03 05:00:15 
  3. mysql> SELECT curdate();
  4.  2019-07-03 
  5. mysql> SELECT curtime();
  6. 04:04:55 
  7. mysql> SELECT year(now()) , month(now()) , day(now());
  8. | 2019 | 7 | 3 |
  9. mysql> select date(now());
  10. | 2019-07-03 |

4.枚举类型

  多选/单选

 set ; enum ;

5.添加字段

1)在表最后添加一条字段

ALTER TABLE 表名 ADD 字段名 字段类型;

ALTER TABLE tea6 ADD address varchar(48);

2)在表中某个字段后添加一条字段

ALTER TABLE 表名 ADD  字段1 字段类型 AFTER 字段2;

ALTER TABLE tea6 ADD address varchar(48) AFTER age;

3)修改字段名和字段类型

ALTER TABLE 表名 CHANGE 字段1字段2 字段类型;      //将字段1的名称改为字段2,并且修改类型

ALTER TABLE tea6 CHANGE gender address varchar(48);

4)删除字段

ALTER TABLE 表名 DROP 字段名;

ALTER TABLE tea6 DROP sex;

四、约束条件

约束分六种:
主键约束:primary key 
要求作为主键的字段的字段值非空且唯一
非空约束: not null 
要求:有非空约束的字段不可以为null值。
唯一性约束:unique 
要求有唯一性约束的字段不可以重复,但是可以为null.
检查性约束: check(条件)— check(gender in(‘f’,’m’)) 
要求在插入数据时必须符合字段的检查条件,但是可以为null 
PS:在mysql中chack无效,一般使用枚举gender enum('f','m'),来代替gender varchar(1) check(gender in('f','m'))
外键约束: foreign key 
要求:有外键约束的字段A必须依赖于另外一个字段B, 
字段B要有主键约束。 
字段A的值,要么是null, 要么必须是字段B里的值

默认值约束:default

定义默值类型,如 age int default 1 ,若在插入时不填则默认为1

 

五、键值类型与索引概述

键值类型有五种:

index 普通索引

unique 唯一索引

fulltext 全文索引

primary key 主键 

foreign key 外键

索引介绍

1)索引是一种类似与书本的目录的存在

2)索引对表中字段进行排序,以大小排序或者字典序列排序

3)索引类型包括Btree,B+tree,Hash

如图所示就是一个平衡树,满足任意一个节点的值小于其左孩子的值,大于其右孩子的值

索引优缺点:

索引优点

1)通过创建唯一性索引,可以保证数据表中每一条数据具有唯一性

2)可以加快查找的速度(采用二分查找)

索引缺点:

1)对表中数据进行增加,修改删除的时候,索引值也需要动态调整,降低了维护速度

2)索引也需要占用物理空间

 

1. Index普通索引

规则有四:

1)一个表中可以有多个Index索引

2)字段值允许重复,且可以为null

3)通常将查询条件作为Index索引值,如为性别添加索引,可以区分出男女

4)Index的字段标志是MUL

如图创建一个表将id和name作为Index索引,查看表结构标记为MUL

删除Index索引

drop INDEX 字段名 ON 表名;

drop INDEX name ON tea4;

在已有表中添加Index索引

CREATE INDEX 索引描述 ON 表名(字段名);

CREATE INDEX nianling ON tea4(age);

查看表中Index索引值

SHOW INDEX FROM 表名\G

SHOW INDEX FROM tea4\G

2.Primary Key 唯一主键

规则:

1)不允许重复,不允许为NULL

2)一个表中只能有一个Primary Key

3)多个字段作为Primary Key,称为复合主键,必须一起创建

4)字段标识为PRI

5)主键通常与auto_increment连用

6)通常把表中唯一的标识记录的字段作为主键,如在表中一般有id字段作为主键类型

建表时创建主键:

在已有表中创建/删除主键

创建: alter table 表名 add primary key(字段名)

删除: alter table 表名 drop primary key(字段名)

在表中创建/删除复合主键:

alter table 表名 add primary key(字段名1,字段名2....字段名n)

alter table 表名 drop primary key(字段名1,字段名2....字段名n)

以name,class作为复合主键

3.foreign key 外键

规则:

1)表存储引擎必须是innodb

2)两表之间的关联字段必须是同一类型

3)被参照字段必须是索引类型的一种(primary key) 

创建表时创建外键:

CONSTRAINT `外键名` FOREIGN KEY (本表字段) REFERENCES '外表名'(`外表字段名`)

->ON DELETE CASCADE ON UPDATE CASCADE;

在一条语句将本表的字段关联到外表的某个字段,并且设置级联属性,当外表字段被删除或更新的时候本表字段动态改变

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值