mysql安装部署与语法

一、安装

1、环境

由于mysql服务大多部署在linux系统,所以这里只介绍centos7

2、安装

1⃣️找到原先安装的mysql的rpm和依赖
rpm -qa | grep mysql
如果有显示结果,那么使用下面的命令逐个删除
yum remove mysql xxx (xxx就是要删除的文件名)
2⃣️以上的操作不会删除mysql 的配置文件,需要手动操作
find / -name mysql
找到所有相关的MySQL的配置信息,然后逐条删除即可
rm -rf xxx (xxx)就是配置文件
3⃣️由于Mysql在Centos7中收费了,所以Centos7开始免费集成的数据库是MariaDB而安装Mysql会和MariaDB冲突
因此需要先删除MariaDB,首先搜索
rpm -qa | grep mariadb
可能看到的结果如下
mariadb-libs-5.5.56-2.e17.x86_64
删除之
rpm -e mariadb-libs-5.5.56-2.e17.x86_64
如果提示“依赖检测失败”,适用如下命令强删
rpm -e --nodeps mariadb-libs-5.5.56-2.e17.x86_64
如果安装过程中还是提示mariadb冲突,可以检查是否存在lib,然后删除
yum list | grep mariadb-libs**
4⃣️云上传mysql8版本
wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
5⃣️安装
yum localinstall mysql80-community-release-el7-1.noarch.rpm
6⃣️检查是否成功
yum repolist enabled | grep “mysql.-community.
在这里插入图片描述出现上图,说明成功
6⃣️安装mysql服务端
yum install -y mysql-community-server
7⃣️启动mysql
systemctl start mysqld
8⃣️查看状态
systemctl status mysqld
在这里插入图片描述出现如图,说明成功

3、设置

1⃣️把/etc/my.cnf配置文件中的"default-authentication-plugin=mysql_native_password"解注释
在这里插入图片描述改完后重启systemctl restart mysqld
MySQL会给我们在/etc/log/mysqld.log下,为root用户生成了一个新的密码
可以通过grep ‘temporary password’ /var/log/mysqld.log查看到
在这里插入图片描述
2⃣️修改密码
用刚才生成的新密码登陆
mysql -u root -p
这时候提示需要修改密码,因为有密码强度限制,先修改密码强度
set global validate_password.policy=0;(0是最低级别,数字越大,限制越多)
set global validate_password.length=6;
修改密码
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123456’;
show databases;
3⃣️上面基本解决本地访问问题,下面介绍如何远程访问
首先创建一个密码为123456,同时访问ip为全ip(%)的用户
create user ‘zyuser’@‘%’ identified by ‘123456’;
然后赋予权限,让用户拥有全部的DDL和DML权限
grant all on *.* to ‘zyuser’@‘%’;
解释下:
DDL:数据定义语言,可以理解成对库和表的操作,比如create、alter、drop、truncate、comment、grant、revoke等,它是隐性提交的,不能rollback
DML:数据操作语言,理解为对数据的操作,比如crud,merge等,可以手动控制事务的开启、提交和回滚
4⃣️关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
5⃣️开放端口
安装并开启iptables
yum install iptables-services -y
systemctl enable iptables
systemctl start iptables
在iptables中加一条关于MySQL的端口限制规则
在这里插入图片描述重新启动iptables
systemctl enable iptables.service
systemctl restart iptables.service

到这里,数据库的安装就算结束了

二、关系型数据库简单对比

项目mysqlsql serveroracle
公司OracleOracleMicrosoft
事务innodb下支持支持非自动提交时
自增AUTO_INCREMENTidentity(1,1)序列或触发器

三、mysql常用语法

1、DDL常用语法(数据定义语言)

1、库操作
1⃣️建库
CREATE DATABASE test CHARACTER SET utf8;
2⃣️修改库的默认编码
ALTER DATABASE test CHARACTER SET utf8;
3⃣️删除数据库
DROP DATABASE test;

2、表操作
1⃣️创建表:
DROP TABLE IF EXISTS tbl_price;
CREATE TABLE tbl_price (
id bigint(10) NOT NULL DEFAULT ‘0’ COMMENT ‘定价ID’,
price_name varchar(64) NOT NULL DEFAULT ‘’ COMMENT ‘定价名称’,
price_type TINYINT(2) NOT NULL DEFAULT ‘1’ COMMENT ‘定价类型,1:月卡 2:季卡 3:年卡 4:直接售卖 5:包月 6:假期’,
pay_type TINYINT(2) NOT NULL DEFAULT ‘1’ COMMENT ‘付费类型,1:作业服务 2:提分vip 3:个性化阶段报告’,
favorable_price decimal(10,2) NOT NULL DEFAULT ‘0.00’ COMMENT ‘现价’,
price decimal(10,2) NOT NULL DEFAULT ‘0.00’ COMMENT ‘原价’,
is_delete bit(1) NOT NULL DEFAULT b’0’ COMMENT ‘状态,删除:1 未删除:0’,
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘记录创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED COMMENT=‘定价表’;
2⃣️添加字段
ALTER TABLE USERS ADD alias varchar(20) COMMENT ‘别名’;
3⃣️修改字段
不修改名称:ALTER TABLE USERS MODIFY name varchar(20) NOT NULL COMMENT ‘用户名’;
修改名称:ALTER TABLE USERS CHANGE name username varchar(20) NOT NULL COMMENT ‘用户名’;
4⃣️删除字段
ALTER TABLE USERS DROP COLUMN alias;
– 删除多个字段
– ALTER TABLE USERS DROP COLUMN alias,DROP COLUMN age;
5⃣️ 查看表结构
desc stud;

3、索引操作
1⃣️添加/删除索引
ALTER TABLE USERS ADD PRIMARY KEY ( id )
ALTER TABLE 表名 DROP PRIMARY KEY;
2⃣️添加唯一索引
ALTER TABLE USERS ADD UNiQUE ( username )
3⃣️添加普通索引
ALTER TABLE USERS ADD INDEX index_name ( age )
4⃣️添加全文索引
ALTER TABLE 表名 ADD FULLTEXT (列名)
5⃣️添加组合索引
ALTER TABLE 表名 ADD INDEX index_name ( 列名1, 列名2, 列名3 )
6⃣️添加/删除外键
alter table 表名 add constraint fk_引用id foreign key(引用id) references 被引用表名 (被引用id)
alter table 表名 drop forign key fk_引用id

2、数据库管理命令

1、连接数据库
mysql -u root -p123456

mysql -u root -p
密码
2、查看操作
1⃣️查看所有库
show databases;
2⃣️ 查看所在库的表
show tables;
3⃣️查看库的创建语句
show create database test;
4⃣️查看表的创建语句
show create table test;
5⃣️查看表的索引
– show index from table_name(表名)
show index from users;
6⃣️查看mysql版本
select version();
7⃣️查看当前用户
select user();
3、创建用户
– 特别需要注意,在 MySQL 中,账号由两部分组成:
– 1. user
– 2. host
– 即使 user 相同,只要 host 不同,也会被认为是不同账号。
– 这样可以非常方便对来自不同 ip 地址的访问进行精细的权限控制。
– 默认情况下,创建的用户 host 为 ‘%’,这是一个匹配符,跟模糊查询里的意思一样,表示匹配所有
create user [用户名] identified by ‘[密码]’;
create user vip identified by ‘vippp’; – 所有连接
create user vip@‘127.0.0.1’ identified by ‘xxx’; – 本地连接
create user vip@‘192.168.%’ identified by ‘yyy’; – 192.168 网段的连接
4、删除用户
drop user 用户名;

delete from mysql.user where user=‘用户名’ and host=‘%’
5、修改密码
set password from ‘用户名’ @host=password(‘新密码’);

update mysql.user set password=password(‘新密码’) where user=‘用户名’ and host=‘%’;
–使用password() 进行加密
6、设置用户权限
–将所有数据库上的所有权利都授予通过本机连接的VIP用户;
grant all on . to vip@‘127.0.0.1’;
–将数据库books上的所有权利都授予所有连接的vip用户;
grant all privileges on books.* to vip@‘%’;
–将books数据库上的users表的访问权限开发给vip用户;
grant select on books.users to vip@‘%’;
–with grant potionss的意思是可以给vip给予权限给别的用户
grant all on . to vip@‘%’ with grant potions;
–设置权限后要刷新权限
flush privileges;

3、DML(数据操纵语言)

增删改查操作
Select\delete\update\insert\call

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值