linux学习-----数据库MySQL
数据库
1.什么是数据库
如果一个项目是动态内容 数据库是必须的
2.MySQL
是一个关系型数据库管理系统 最流行的数据库管理系统之一
在web应用上MySQL是最好的 和php是黄金搭档(LAMP LNMP)
3.常见其他数据库软件
Oracle(重量级) MS SQL Server
4.linux下的软件安装方法(初步)
1.源码包(依赖少 安装时间短)
优点:开源 可以修改源代码
编译安装 适合自己的系统 稳定性高
缺点:安装步骤多 容易出错
编译过程时间长
案例 使用源码编译安装方式安装ncurses(常用的一个终端库)
步骤:
1.将软件包传递到服务器之上----------------上传到服务器/usr/local/src/
2.解压需要安装的源码包
tar -zxvf *.tar.gz--------------------------tar -zxvf nurses-6.1.tar.gz
tar -jxvf *tar.bz2
3.切换到源码目录
配置(config/configure/bootstrap)----------./configure --prefix=/usr/local/ncurses
编译(make/bootstrapd)-------------------make
安装(make install/bootstrpd install)----------make install
配置操作主要指定软件的安装路径 需要依赖在什么敌方 指定不需要可选依赖,配置文件的路径 通用数据存储位置等等
指定安装的路径: --prefix=路径
需要依赖的路径:--with-PACKAGE名=包所在路径
不需要依赖:--without-PACKAGE名
2.二进制包
优点:包管理系统简单 只需要几个命令就可以实现包的安装 升级 查询和卸载
缺点:经过编译 不再可以看到源码
回顾rpm指令
rpm -qa|grep 关键词
rpm -e 关键词 [--nodeps]
rpm -ivh 完整名称
rpm -Uvh 完整名称
rpm -qf 文件路径 查询指定文件属于哪么包
案例:使用二进制包安装lynx(一款纯命令行的浏览器)
在光盘中就有这个包
lsblk 查看光盘是否挂载
安装好之后 查看网页------------------------ lynx –dump 网站地址
3.yum安装
优点:安装简单快捷
缺点:完全丧失自定义性
yum list ---------------------列出当前已经装的 和可以装的软件
yum search 名 ---------------搜索指定额度关键词的包
yum [-y] install 包名 -----------安装指定的包(-y表示允许不再确认)
yum [-y] update [包名] ----------更新指定的包 不指定包则更新全部软件
yum [-y] remove 包名 ----------卸载指定的包
5.安装MySQL
1.MySQL安装
yum install mysql-server
2.MySQL初始化
service mysqld start
netstat -thlp 查看数据库端口号 3306
mysql_secure_installation
输入mysql的root用户密码
3.MySQL的启动
域名:service mysqld start
进入mysql方式--------------------mysql -u 用户名 -p
然后输入密码 就进入啦
退出命令:------------------------exit
4.默认目录/文件位置
数据库存储目录: /var/lib/mysql
配置文件: /etc/my.cnf
6.MySQL的基本操作
1.名词介绍:
以excal为例
数据库:可以看作是整个excal
数据表:可以看作excal中的工作表
行(记录):可以看作是一个工作表中的一行
列(字段):可以看作是一个工作表中的一列
2.库操作:
以下命令在MySQL终端命令行中执行
SHOW DATABASES; 显示当前MySQL中全部的数据库
CREATE DATABASE 库名 创建一个数据库
DROP database 库名 删除一个数据库
use 库名 切换数据库
3.表操作
1.show tables 显示当前数据库中所有的表名(必须先use 数据库)
2.create table 表名称
(列名称1 数据类型【NOT NULL AUTO_INCREMENT】,
列名称2 数据类型,
列名称2 数据类型
。。。
PRIMARY KEY(主键字段名));
3.desc 表名 表示描述一个数据表(查看表结构)
4. drop table【if existed】表名 删除数据表
4.记录/字段操作
1.增加记录
insert into 表名称 values(值1,值2.。。。。。)
insert into 表名称(列1,列2.。。)values(值1,值2.。。。);
2.查询记录
select 列名称1,列名称2 from 表名称 where 条件; 查询指定字段
select * from 表名称 where 条件; 查询全部字段
3.更新记录
update 表名称 set 列名称1=新值1,列名称2=新值2.。。。。。。 where 条件;
以后在执行行数的sql操作的时候注意条件的书写
4.删除操作
delete from 表名称 where 列名称=值;
5.备份与还原
1.备份
全量备份(数据+结构): mysqldump -uroot -p123456 -A >备份文件路径
指定库备份(数据+结构):mysqldump -uroot -p123456 库名>备份文件路径
多个库备份(数据+结构):mysqldump -uroot -p123456 --databases db1 db2>备份文件路径
案例:每分钟自动备份一次数据库
1.创建shell脚本(touch test19.sh---àvim test19.sh)
#!/bin/bash
filename=“test_” data+’%Y%m%d%H%M%S’ “.sql”
mysqldump -uroot -p123456 test>/root/$filename
2.编写任务计划(crontab -e)
***** /root/test19.sh
2.还原:
还原部分分为mysql命令行sourse方法和 系统命令行方法
1.还原全部数据库
1.mysql命令行:mysql> source 备份文件路径
2.系统命令行:mysql -uroot -p123456 <备份文件路径
2.还原单个数据库(需要指定数据库)
1.mysql>use 库名
mysql> sourse 备份文件路径
2.mysql -uroot -p123456 库名<备份文件路径
3.还原单个数据库的多个表(需指定数据库)
1.mysql>use 库名
mysql>source 备份文件路径
2.mysql -uroot -p123456 库名<备份文件路径
4.还原多个数据库(一个备份文件里有多个数据库的备份 此时不需要指定数据库)
1.mysql命令行: mysql>source 备份文件路径
2.系统命令行:mysql -uroot -p123456 < 备份文件路径
5.设置mysql连接字符集
mysql>set names utf-8;
拓展
使用远程终端连接数据库
1.mysql的远程管理工具
分为两类 : B/S架构 浏览器和服务器 如百度搜索应用
C/S架构 客户端和服务器 如应用程序
在BS中 mysql有一个典型的管理工具: PMA(phpMyAdmin)
在CS中有个比较典型的软件:Navicat mysql workbrach
2.Navicat使用步骤
1.关闭防火墙:----service iptables stop
2.打开Navicat 连接MySQL 输入连接名 ip地址 端口号 用户名 密码
要解决问题 :允许MySQL远程登陆
1.进入数据库
2.执行sql语句:------- select host,user from user;
3.将其中的一个host值改为“%” 表示可以允许任何地方登陆
------updata user set host =“%” where host=“主机名” ;
4.刷新权限表(mysql> flush privileges) 或者重启MySQL