一:MySQL:
安装:
数据库一键安装:yum
yum -y install wget
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm (rpm安装)
yum -y install yum-utils
vim /etc/yum.repos.d/mysql-community.repo
yum install -y mysql-community-server 启动服务
systemctl start mysqld 设置开机启动
grep password /var/log/mysqld.log (过滤密码)
免密登录:
vim /etc/my.cnf 添加skip-grant-tables
systemctl restart mysqld
mysql
use mysql;
update user set
authentication_string=password(‘QianFeng@123’) where user=‘root’;
flush privileges;
\q (退出)
vim /etc.my.cnf 注释掉 skip-grant-table
mysql -uroot -p’QianFeng@123’
MySQL修改密码的四种方法:
root修改自己的密码
方法1:mysqladmin -uroot -p’123’ password ‘new_passwd’ #123是旧的密码:
方法2:set passwd=‘new_passwd’
方法三:grep password /var/log/mysqld.log (过滤密码)
vim /etc/my.cnf 添加skip-grant-tables
systemctl restart mysqld
方法四:进去 mysql
use mysql;
update user set
authentication_string=password(‘QianFeng@123’) where user=‘root’;
flush privileges;
\q (退出)
vim /etc.my.cnf 注释掉 skip-grant-table
mysql -uroot -p'QianFeng@123'
请说说你所知道的mysql的存储引擎和默认的存储引擎分别都有和都是什么?
1, InnoDB存储引擎
2、MyISAM存储引擎
3、MEMORY内存型引擎
卸载mysql 安装新的,必须删除 /etc/my.cnf 和 /var/lib/mysql
不然下次安装,还是旧的数据库,密码的话还是不变的
删除 yum -y remove mysql-server
pkill mysql
yum - y install mysql-server
数据类型:
1,int (整数)
2,float (小数)
3,char vchar
4,enum
5,date time datetime
6,year
数据库的简单的操作:
mysql -uroot -p’QianFeng@123’ 进去
show database; 查看数据库
create database chen; 创建数据库
use chen; 使用这个数据库
show database; 查看数据库
select database(); 查看当前所在的库
create table test1(age tinyint,number int); 创建两个表 表明它的数据类型
desc test1; 查看表结构
insert into values(30,88); 输入内容
select * from test1; 查看内容
alter table t3 add (chinese int(10),english int(10));添加内容
drop table 表名:
drop database 库名:
表的完整性的约束:
primary 主键
foreign 外键
定义的;两种方式:
1 表存在,添加约束
alter table t7 add primary key(hostname)
2 表不存在,创建表并且指定约束
create table t9(hostname char(20),ip char(150),primary key(hostname))
删除主键:alter table tab_name drop primary key;
mysqladmin -u root -p’QianFeng@123’ password ‘ZhaoHan@123’ 修改密码
创建数据库中的表
float
create table test4(float_test float(5.2).);
char vchar
create table t8(c char(5),v varchar(12));
enum
create table t101(name enum(‘tom’,‘jim’));
date time datetime
create table test_time(d date,t time,dt datetime);
year
create table t3(born_year year);
MYSQL数据库的CPU突然飙到500%,咋处理
1,top查看那个端口占用的cpu是最多的
2,show processeslist查看是否是由于大量的并发,锁引起的负载问题
3,查看慢查询,找出执行长的sql语句,是否走索引?要进行sql语句的优化
4,是否缓存失效
5,mysql 进行交互使用了哪些协议?端口使用的是3306
1,tcp/ip
2,unix Socket协议------socket是一种内部进程通信的形式被用于在相同主机上行程进程间的双向的通信连接点。
单表查询:
简单查询:select id,name,sex from employee5;
有条件查询:where
mysql> select id,name from employee5 where id<=3;
mysql> select id,name,salary from employee5 where salary>2000;
统计数量查询:select count(*) from employee5;
索引:index
在创建表的时候指定
create table student1(id int not null, name varchar(100) not null, birthdy date, sex char(1) not null, index nameindex (name(50)));
表创建结束的时候创建索引
create table student2(id int not null, name varchar(100) not null, birthday date, sex char(1) not null);
create index nameindex on student2(name(50));
权限管理:
本地登录: mysql -uroot -p …
远程登录 mysql -h 192.168.246.253 -P 3306 -uroot -p(密码)
客户端语法:mysql -h ip地址 -P端口号-u 用户名-p 密码 :如果没有改端口号就不用-P指定端口
创建用户:create user tom@‘lacalhost’ identified by ‘qf@123’;创建用户并且设置密码
% 所有
修改权限:grant all on . to ‘user3’@‘localhost’;
修改表以后需要刷新权限: flush privileges;
grant 权限列表 on 库名.表名 to ‘用户名’@'客户端主机’identified BY ‘Qf@123’;
注意:root授权的时候千万不要给予 .(所有库下面的所有表) web.*(web库下面的所有的表) web.stu_info(web库下面的stu_info表)
授权 on(MySQL.user) mysql.db mysql.tables_priv
授权:grant all on 库和表名 to u1@‘ip’ identified by “密码”; 创建用户以及设置权限是一体的
select * from mysql.user where user=‘u1’\G
select * from mysql.db where user=‘u1’\G
select * from mysql.tables_priv where user=‘u1’\G
root修改自己的密码
方法1:mysqladmin -uroot -p’123’ password ‘new_passwd’ #123是旧的密码:
方法2:set passwd=‘new_passwd’
root修改其他用户的密码:
use mysql
set passwd for user3@‘locaohost’=‘new_passwd’
删除用户:drop ‘user3’@‘localhost’;
delete from mysql.user where user=‘tom’ AND host=‘localhost’;
日志管理: 错误日志 /var/log/mysqld.log