一、关于数据库
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,2008年被Sun公司收购,目前属于 Oracle 旗下产品。MySQL 是最流行的数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。其和php是黄金搭档**(LAMP/LNMP)**。
目前市场上还有:Oracle(重量级的数据库)、MS SQL Server(微软)、Access(微软)、PostgreSQL、DB2、Mariadb(MySQL分支,完全兼容MySQL)。
二、安装方法的介绍
操作之前确保计算机时间准确
-
a. 源码包(建议)
优点 开源,如果有足够的能力,可以修改源代码 编译安装,更加适合自己的系统,稳定高效 缺点 安装步骤较多,**容易出错** 编译过程时间较长
案例:使用源码编译安装方式安装ncurses(一种常用的终端库)
扩展:解包 常用语法: #tar -zxvf *.tar.gz (大多数) #tar -jxvf *.tar.bz2 选项含义: -z或--gzip或--ungzip:通过gzip指令处理文件; -x或--extract或--get:从文件中还原文件; -v:显示操作过程; -f或--file:指定一个文件; -j:支持bzip2解压文件;
①先将软件包传递到服务器上“/usr/local/src”
确保上传成功
②解压需要安装的源码包
tar -zxvf ncurses-6.1.tar.gz查看是否解压成功③安装
切换到源码文件夹,然后执行后续操作配置(config/configure/bootstrap)→编译(make/bootstrapd)→安装(make install/bootstrapd install)
配置:指定软件的安装目录、需要的依赖在什么地方、指定不需要可选的依赖、配置文件的路径、通用数据的存储位置等等。
指定安装的路径: --prefix=路径
需要依赖的路径: --with-PACKAGE=包 所在的路径
不需要依赖: -without-PACHAGE 名配置
./configure --prefix=/usr/local/ncurses
配置过程
配置步骤
编译步骤
make编译过程
编译成功
安装
make install
安装过程
安装完成
查看是否安装完成 -
b. 二进制包(rpm)
优点: 包管理系统简单,只需要几个命令就可以实现包的安装,升级,查询和卸载 缺点: 经过编译,不再可以看到源代码
回顾rpm相关指令:
#rpm -qa|grep 关键词
#rpm -e 关键词 [–nodeps]
#rpm -ivh 完整名称
#rpm -Uvh 完整名称
#rpm -qf 文件路径 【查询指定文件属于哪个包】
案例:使用二进制包安装lynx(一款纯命令行的浏览器)
在光盘中有
插卡光盘是否挂载
lsblk
安装
检测是否安装成功
例如:查看百度:lynx --dump www.baidu.com
-
yum等傻瓜式安装
优点: 安装简单,快捷 缺点: 完全丧失了自定义性 注意:如果不更改软件来源的情况下,是需要联网才能使用yum的。 常用的yum指令: #yum list [installed] 列出当前已经装的和可以装的软件(全部) #yum search 名 搜索指定的关键词的包 #yum [-y] install 包名 安装指定的包(-y表示允许不再确认) #yum [-y] update [包名] 更新指定的包,不指定包则更新全部软件 #yum [-y] remove 包名 卸载指定的包
案例:删除火狐。
yum remove firefox
安装火狐
yum install firefox。
三、安装MySQL
此处以yum安装为例。
①MySQL的安装
指令:yum install mysql-server
完成效果
②MySQL的初始化
service mysqld start。首先启动进程查看端口号
指令:mysql_secure_installation
Enter current password for root (enter for none):请输入当前root用户的密码,如果没有按回车,注意此root并非linux的root用户。
Set root password?是否设置root密码?
Remove anonymous users?是否移除匿名用户,选择移除(Y)
Disallow root login remotely?是否不允许root远程登录(默认不允许)
Remove test database and access to it?是否移除测试数据库(建议先不移除)
Reload privilege tables now?是否重新加载权限表(当我们更改了mysql用户相关的信息之后建议去重载权限)
初始化完成
③MySQL的启动控制
语法:service mysqld start/stop/restart
进入MySQL的方式:
语法:mysql -u 用户名 -p
退出MySQL到linux命令行:
mysql > exit
④默认目录/文件位置
数据库存储目录:/var/lib/mysql
配置文件:/etc/my.cnf
四、MySQL的备份与还原(重点)
①备份
全量备份(数据+结构):#mysqldump -uroot -p123456 -A > 备份文件路径
指定库备份(数据+结构):# mysqldump -uroot -p123456 库名 > 备份文件路径
多个库备份(数据+结构):# mysqldump -uroot -p123456 --databases db1 db2 > 备份文件路径
案例:备份整个库
案例:每1分钟自动备份1次test数据库
计划任务编写:
等待几分钟观察目录情况:
②还原(导入)
还原部分分(1)mysql命令行source方法 和 (2)系统命令行方法
1.还原全部数据库:
(1) mysql命令行:mysql> source 备份文件路径
(2) 系统命令行: #mysql -uroot -p123456 < 备份文件路径
2.还原单个数据库(需指定数据库)
(1) mysql> use 库名
mysql> source 备份文件路径
(2) #mysql -uroot -p123456 库名 < 备份文件路径
3.还原单个数据库的多个表(需指定数据库)
(1) mysql> use 库名
mysql> source 备份文件路径
(2) mysql -uroot -p123456 库名 < 备份文件路径
4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
(1) mysql命令行:mysql> source 备份文件路径
(2) 系统命令行: mysql -uroot -p123456 < 备份文件路径
案例1:人为删除xg表(模拟数据表丢失),然后通过最后一次备份还原数据表。
先删除数据表
还原操作:
案例2:需要还原sql文件到test库(mobile.sql 31万条数据)
设置Mysql连接字符集:
Mysql> set names utf8; 【三码一致,服务器端+传输过程中+客户端】
五、MySQL的远程管理工具
分为两大类:
B/S(浏览器/服务器)例如:百度搜索应用
C/S(客户端/服务器)例如:QQ、电脑端微信、游戏
在BS中,MySQL有个典型的工具:PMA(phpMyadmin)。
在CS中,MySQL有个典型的工具:Navicate。
为了解决MySQL不能远程登录
a. 先进入数据库选择mysql数据库;
b. 执行sql语句:select host,user from user;
c. 将其中的一个记录的host值改为“%”,表示可以允许任何地方登录
d. 刷新权限表或者重启mysql
刷新权限:mysql> flush privileges;