linux下mysql

服务篇mysql

Apache只能发布解析静态页面,mysql用来存放用户信息,数据记录

MyISAM强调的是性能,比InnoDB快,但不提供事务支持,复杂的任务,关联。支持表锁。类似excel表格。安装时默认模式。

InnoDB,支持外部键,可以执行大量的insertupdate,像银行系统

 

有两个引擎,类似apache两个工作模式

Database>tables>row

MyISAM 类型的表强调的是性能,主要用于select(查询)操作,执行速度比InnoDB类型的表快,但不提供事务支持。支持表锁

InnoDB类的表提供事务支持,适合复杂的逻辑关系,执行大量的insertupdate。支持行锁。

安装 yum install mysql-sever(服务器端) mysql(客户端) mysql-devel(库文件) -y

Mysql默认配置文件在/etc/my.conf

启动在/etc/init.d/mysqld Mysql是一个存放数据的软件,数据是存在/var/lib/mysql/

如果启动时有多个进程是用了同一个socket,把sock文件改成备份

mysql命令进入终端 quitexit退出

show databases;预览库

drop database jfedu;删除库

create database juedu;增加库

use jfedu;使用库

show tables;预览表

drop table class6;删除表

create table class6 (name char(10),age char(10),job char(10));创建表

其中char是必须设置的,设置成varchar

show tables;

预览表

insert into class6 values (inxing,25,网管);

Insert into class6 values (laoli,27,工程师);

看前两行,有些表几百万行,不能全看

select * from class6 where name=yinxing;查表

and age=20;and job=IT;

*改成name,只查name那一列

select count(*) from class6;看表一共几行

mysql -hlocalhosthost  -uroot指定用户 -p输入密码

本地主机也要授权了才能访问,别的IP要授权才能访问

delete from class6;清空表内容

delete from class6 where name=yinxing;删除指定行

看表的结构describe(缩写成desc) class6;

show create table class6; 看表创建的语句,看引擎,看字符集

show engines;可以看到所有模式,看到MyISAM是默认default

show variables;显示mysql参数

show variables like %char%; 看字符集,看一遍然后全改成utf8

vi /etc/my.conf

[client]字段

[mysqld]字段

[mysql]字段

看配置文件,没有字段就新加字段

/mysql 斜杠加要查找的内容

重启mysqld

show variables like %char%;看字符集变了没

有乱码的话先看看字符集有没有问题

一个表一个引擎

 

数据库授权

grant all(所有的权限,增删改查,设置成select只有select权限,给开发看就只给select权限,多权限逗号隔开(改完权限后flush privileges;刷新权限)) on *(哪个数据库,可以写jfedu这个库).*(哪个表) to root(用户)@192.168.245.128 identified by 1(密码);

链接别的服务器的数据库

grant all on *.* to root@192.168.245.128 identified by 1;

安装mysql

mysql -h192.168.245.134 -uroot -p

show databases;看是不是那个机器

数据库备份mysqldump -uroot(哪个用户干的,要有权限) -p(可能没有密码) jfedu(哪个库) >20160219.sql(备份成今天日期)

mysqldump -uroot -p jfedu >./20160219.sql

Dump转储,倾倒,倾卸的意思

vim这个文件打开,里面/*############*/都是注释

把表删了drop ,然后

数据库导入 source 接文件绝对路径;

然后show tables看下是不是导入的原来的数据;

必须选好库之后再导入

把数据库删了,

mysql -uroot -p jfedu<./20160219.sql

新建库jfedu,再执行。进去看看数据在不在

导出表mysqldump -uroot -p jfedu test_001 >test_001.sql

导出数据库结构的

 

忘记数据库密码(密码破解)

先把数据库停了,stop,跳过表的权限

然后/usr/bin/mysqld_safe –user=mysql –skip-grant-tables &

然后ps -ef |grep mysql看有个叫sql_skip-grant-tables

然后mysql登进去进mysql这个库show tables;

Update user set(改哪个表) password=password(1) where user=root;

重启数据库,这次是常规启动

ps -ef |grep mysql 没有–skip-grant-tabes

Mysql -uroot -p1

 

光说不练假把式,一定要多练,做到能脱口而出

navicat for mysql远程工具

下载后授权本机IP,实验能不能登上去

 

配置文件里/etc/my.confmysqld下的datadir是数据存放目录,可换成/data/mysql,mysql就是存放数据的软件,库都没了还搞啥

 

bin-log是存放所有操作的语句,也就是操作记录,有这个日志数据库丢了也能回来,在/var/lib/mysql

有时候实在起不来一个是看屏幕上的提示,一个是去tail -fn 100 /var/log/mysqld.log

mysqlbinlog mysql-bin.000010 |more 不行的话把配置文件里的新增删掉

日常优化参数

Max_connections – 3000 最大连接数,每秒并发,不可能老连数据库,前面肯定有一级缓存

InnoDB_buffer_pool_size 指定一定的内存缓存热点数据,设成内存80%,系统还要用内存,至少4G

Key_buffer_size也是指定一定的内存缓存热点数据

改表的引擎alter table class6 engine=innodb;

 

源码安装mysql,按文档执行一遍

 

独立表空间(每个表保存成一个独立文件),共享表空间(所有的表保存在一个文件里)ibdata是共享表空间100G

一定要熟练,脱口而出,不能会但是不熟练

 

Mysql数据库索引及慢查询

normal普通索引

Unique不允许重复的索引,全文要只有这一个字段

Full text全文搜索

建索引一般是DBA

alter table class6 add index index_name(name)

alter table class6 add unique (name)

Alter table class6 add primary key (name)

索引都是DBA

 

慢查询,查询时间超过10秒,该语句就被记录成慢查询,然后拿给DBA给他优化

Show variable like %slow%;看慢查询状态,查询是否开启,秒数设定,日志开关,记录到的目录

配置文件里应该有这个设置

慢查询特别重要,企业里查询时间超过0.1s记录出来

mysqldumpslow -s r -t 10 /var/run/mysqld下的slow文件

Vim slow.log 把那里面的文件给DBA就行了,他会去优化

 

Mysql主从,主备

数据备份备到远程,备到本机服务器挂了就没办法了

基于bin-log实现

从有一个master-info文件(中继日志),从主的二进制文件到中继日志,中继日志生成mysql语句。

Show master status;

复制配置文件

Vi /etc/my.conf replicate后面改成all

再复制到从机器上,server-id不能一样

从不要bin-log

Replicate那行不要,因为同步哪个库是主来定的

History看历史命令的,|grep 加你想找的命令的关键词 !加条数执行

然后主上grant replication slave on *.* to root@192.168.245.128 identified by 1;

看下主上的show master status;

从只能从Position后同步

然后去从上粘贴命令change master to(配置文件里的),修改成服务器的IPuser改成rootmaster端的文件,和点

然后在从上启动slave start

然后验证show slave status;

 

Day13前面一段有主从的原理总结

Day14开头有一段主从的总结

IT文库 » linux下mysql
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址