一、MySQL安装步骤
1.创建mysql 虚拟用户: useradd -s /sbin/nologin myql
2.创建存放软件的文件夹:mkdir /application
3.解压:tar xf mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz -C /application/
4.创建软链接 :ln -s mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz mysql
5.初始化:/application/mysql/scripts/mysql_install_db
–user=mysql --basedir=/application/mysql
–datadir=/application/mysql/data
6.写入环境变量:export PATH=/application/mysql/bin:$PATH
source /etc/profile
\cp /application/mysql/support-files /etc/my.cnf
7.启动 mysqld_safe &
8.查看端口号: ss –lntup
二、MySQL的历史
Host主机名
网络数据库
MySQL mssql db2 orcale
Maridb MySQL的创始人
Hadoop
非关系型数据库• NoSQL not only sql
Web 2.0 高并发 高存储量的一个时代
Mongodb美团
redis 虚拟化 memcache
memcachedb(新浪) couchdb hbase hive – ttserver 东京的暴君 持久化存储的数据库 单表2000万数据库的情况下 如果3000
Memcache memory cache 内存缓存
Hbase hadoop database
Hive 将sql 转化成 mapreduce 处理和计算的
三、范式
范式 - - 设计数据库的规则
第一范式 :表中的数据 不可在拆分
| 1 | zhang | 手机号 、 微信号|
| 1 | zhang | 手机号 |微信号 |
第二范式
主键
第三范式
外键
| 1 | hah |1 | nihao | 阿里
四、MySQL结构
事务 : 一组事件全部完成或者 全部取消
事务四大特性:ACID
1.原子性Atomicity
一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。
2.一致性Consistency
在事务开始之前和事务结束以后,数据库的完整性没有被破坏
3.隔离性 Isolation
数据库允许多个并发事务同时对其数据进行读写和修改的能力
4.持久性 Durability
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失
ODBC 是有C语言开发 数据库对外提供服务的API
JDBC java 专门供java使用
五、约束、索引
索引就是为了 加快查询
select * 速度慢
五、MySQL常用语句
DML 数据库的管理语言
grant 授权
revoke 收权
DCL 查询语言
show 显示
select 查询
use 使用
DQL 标准查询语言
DDL 定义语言
常用命令
insert 插入
update 修改
delete 删除 用update代替
truncate 删除 清磁盘
Delete truncate 就是直接情况磁盘内容
Delete* update 内容修改成空 代替delete
全备+增量日志 才有可能恢复人为删除的数据
六、MySQL二进制的三种日志格式
1.row 行
数据只要更改 我就把你更改的数据记录下来 update
2.Statement 语句
记录你执行过的语句
mysql更新了一些函数
3. mixed :智能的切换
根据你更改的东西 只能的选择 使用 row 或者statement
MySQL命令
mysqld_safe 启动
mysql 登陆MySQL
mysqldump 备份
mysqladmin shutdown 关闭
mysqldump -B aa > aa.sql 备份
mysqldump -B aa < aa.sql 恢复
修改密码 mysql –uroot –p12456 (shutdown)
Mysqldump FTWRL flush table with read lock unlock tables
Xtrabackup innodb 表得热备份 hotbackup
Mysqlsla 慢日志分析的工具
Mysqlreport 分析mysql配置参数的工具
Sphinx 创建索引的工具
是mysql官方发布的读写分离软件 --没有配置文件 没有日志文件 ——mysql router
代码
Statement 语句
mysql –uroot –p12456 登录
Mysqld_safe & 登录
修改密码
update mysql.user set password=password(‘123456’) where user=‘root’;
Show databases; 看数据库
Show tables; 看表
Use tables; 切换数据库
Show variables; 查看数据库所有参数
Show variables like ”%format%”; %匹配数据库所有参数 like模糊查询 %所有
Show processlist; 有没有执行
Show create database mysql; 显示创建过程
show create table aa; 查看创建的表aa
show grants for root@localhost; 查看用户权限
prompt didi>
exit /quit +ctrl c 退出去
cat /root/.mysql_history 查看所有执行的命令
命令行里echo $LAGN
修改服务器的字符集
alter table test1 add sex char(3) after id; 插入表结构
创表
索引
Create index name_index on test1 (name); 创建索引
删除索引
Create unique index sex_uniq_index on test1 (sex); 增加sex
增加用户
联合索引
索引的优化
改表中内容
Insert into test1 (user) values (‘ss’); test1中插入用户名为ss
Update test1 set age=20 where user=’ss’;
select * from test1; 查看改过之后的
备份
FTWRL 锁表
Flush table with read lock 锁表
Unlock database aaaaa; 解锁
规范 锁表 备份
Select user(); 查看当前用户
Select database(); 查看当前数据库
Delete from test1 where user=’ss’;删除用户名为ss
Truncate table test1;表中内容全删除
Rename table test1 to test2;改表名
授权
Grant all privileags on . to ‘ss’@localhost identified by ‘123456’; 所有库所有名
Show grants for ss@localhost;查看是否授权成功
Revoke create on . from ss@localhost;收权 localost本地主机,本地服务器
刷新权限:Flush privileges;告诉它授权了这个用户
七、MySQL的多实例
一台服务器上 可以跑3个MySQL且互不干扰 百度搜索引擎的从库 用的就是多实例
96g 内存
创建文件夹 两种方法 多实例
例子
1.
2.3307 和3308都传入两个文件
Cd ~ 根下
3.初始化 在根目录下/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3308/data
4.chown -R mysql.mysql /data/ 权限
4.开启 mysqld_safe --defaults-file=/data/3308/my.cnf&
5.修改vi /data/3308/my.cnf (吧3307改成3308,5改成6,注释掉倒数第二行)
加上 :g/3308/s//3307/g 按shift zz 退出意思 接着运行4.
6.查看是否有3307 ss -lntup
无密码 看叫脚本
Port端口号
Desc
Mysql 主从复制=主从复制
Show master status;
刷新 flush ;
MYSQL主从同步原理:
1) MYSQL主从同步是异步复制的过程,整个同步需要开启3线程,master上开启bin-log日志(记录数据库增、删除、修改、更新操作);
2) Slave开启I/O线程来请求master服务器,请求指定bin-log中position点之后的内容;
3) Master端收到请求,Master端I/O线程响应请求,bin-log、position之后内容返给salve;
4) Slave将收到的内容存入relay-log中继日志中,生成master.info(记录master ip、bin-log、position、用户名密码);
5) Slave端SQL实时监测relay-log日志有更新,解析更新的sql内容,解析成sql语句,再salve库中执行;
6) 执行完毕之后,Slave端跟master端数据保持一致!
往数据库里传包
启动哪个
脚本使用密码登录的
跳过密码启动
启动(格式清晰)Netstat –lntup
有网用yum源
安装Yum源
登录
错误
改网端192.168.72.%
退出
导出来
1.锁表
走到这2.备份
3.解锁
Ip add IP地址 在net里
2: eno16777736
另一个
主机打开目的让从传日志
取消倒数第二行注释
重启
(在第一个里设置密码)无密码手工关闭
主库里导入数据
改000007 回车
开启主从同步
查看 Show slave \G ;
是否 有yes
主机创建abc 在从机里查看是否同步
改环境变量
生成缓冲
删除vim里的 删除以下几行就几dd 恢复删除的 按u
:
修改配置文件
主机 授权
刷新权限
克隆 改端口号 和用户
显示行号 Esc : set nu
修改ip地址 主库和从库的端口号
ip
到20行 dd
到IP地址下 按p粘贴上去
到58行 写9yy 到67行按p
改3个name
退出