1.测试环境
a)Centos 6.7
b)Mysql(5.1.73yum安装 在测试rpm安装时候失败)
2.简单的数据库概述
数据库说的直白点就是存储数据的仓库。仓库又有多种,你可以把东西随便扔进去,也可以按照顺序,结构化的存储,现在最流行的是什么?关系型数据库还是非关系型数据库呢。
关系型数据库:SQL Server,MySQL,SQLite,Oracle,Sybase和DB2。
非关系数据库:Couchbase,MongoDB,Redis,BigTable和RavenDB。
相对来说使用最多的还是关系型数据库,现在也有很多开始使用MongoDB(其实是介于关系型和非关系型之间的)。现对于oracle数据库的高昂费用,MySQL是开源免费的数据库,因此在学习关系型数据库时候选择这个来学习了。
3.MySQL安装方法
Windows系统MySQL数据库安装方法比较简单,就是下载一个exe文件下一步安装。这里注意说说linux系统的安装方法,和linux系统其他软件的安装一样也是分两种方法:
3.1 系统安装时候安装
如果你在系统安装时候选择安装了mysql数据库,或者选择为mysql数据库服务器,那么会默认自动安装了数据库和相关的依赖包。但是这个版本一般都是比官方低很多,安全性会低一些,可能会在使用过程中再升级到新的版本,打补丁什么的。如果使用学习的话可以使用这个安装。但是在生产环境中需要注意下数据库安全问题选择相对来说高点的版本,并打上必要的补丁,而在实际的使用过程中大家可能就是安装玩测试,测试使用可以就行了,相对于优化可能做的更多,但是在漏洞扫描,安全扫描时候才会发现你的版本很多漏洞。
在centos7 以后改成了MariaDB,这个是mysql的一个分支。
Centos6 版本可以选择数据库会发现mysql服务器和客户端选上安装的玩系统使用就已经安装了MySQL.
3.2 yum源安装或者rpm安装
如果是有联网的话。Centos系统可以直接使用yum源安装的方法,这个安装可能会比系统自动版本高一点,也会安装必要的依赖库。如果是挂载的dvd作为yum源那么版本就和你挂载有关系,但是有可能部分依赖库找不到。有时候DVD盘分两个。
也可以是在网上下载rpm包安装或在光盘中找到mysql必要的安装包来安装。注意是服务器端和客户端。如果安装过程遇到报错可以根据需要安装必要的文件,比如你是最小系统安装的那么很多库没有安装也需要你自行找到安装包安装。还有个依赖包比较重要的是perl-DBI包这个也是mysql的依赖包。
如果你在使用是Centos7 有可能无法安装,为什么呢?因为安装了MariaDB,需要卸载以后,才能安装。(源码安装也有可能存在这个问题)
不管是系统安装还是yum安装 rpm安装都存在一个问题,就是数据库文件存在什么位置的问题,当然你可以修改配置文件来改变存储位置,也可以找到方法把安装的默认位置,迁移到你需要的位置(这个可能会产生一些问题),不太建议迁移。数据库后续使用需要很大的空间,你可以单独挂载磁盘来给数据库使用。
在安装盘什么未知可以找到RPM文件呢。看看上面的两个图就知道了。
相对于前面安装方法的简单,后面的安装方法可能会复杂点,但是还是建议使用这种安装方法。
去哪里找安装包不用我来说吧,网站自己搜下mysql官网就出来了的啊。选择什么版本根据自己需要。里面有企业版(收费的)和社区版本,并且根据不同系统都有对应的版本,既有单独的rpm包,也有集合例如我下载的就是mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar 最新合集。解压之后:
安装顺序:先安装所有必要的依赖包,然后在安装mysql-server和mysql-client
客户端是用来测试本地服务器。
安装命令是rpm -ivh 包名.rpm
如果希望知道安装包的默认安装目录可以使用rpm -qpl 包名.rpm查看
如果希望更改安装目录可以使用 --relocate 旧的安装目录=新的安装目录
例如我希望将mysql的数据存储安装到我新挂载的文件目录 /data/mysql上
rpm -ivh --relocate /var/lib=/data/mysql mysql-community-server-5.7.18-1.el7.x86_64.rpm
如果直接使用安装mysql-server时候会遇到如下报错,原因是库文件和依赖文件没有安装的原因。因为几个包都存在着依赖的关系可以使用--nodeps 忽略安装。
看到上面第一个报错需要安装glibc2.17 版本以上的才可以,systemd等。这安装方法感觉很复杂,会出现各种报错。我是尝试了很久。
如果希望直接使用yum安装吧,这种最省心了,其实官网还有各=地方你可以YUM 很小的一个文件,这个就是yum源文件,可以把这个下载下来放到yum源中。这样就可以安装最新的版本了。
最快的安装方式:
yum install mysql
你会发现这样安装还是无法启动,那是因为你安装的不是server
看看安装的目录:rpm -ql mysql-server
主要的文件:
/usr/bin (客户端程序和脚本) /usr/sbin (mysqld 服务器) /var/lib/mysql 日志和数据库文件
后面这个最主要了,所有的数据库文件都在里面
4.配置
Mysql的配置文件相对来说是简单的,但是和各个应用相关的连接什么。还需要安装相关的文件比如安装php-mysql等等,会生成一些相关的配置文件,需要具体问题具体分析了。
配置文件/etc/my.cnf
关于mysql的启动除了使用service mysqld start
还可以使用mysqld_safe & (官方建议使用这个)但是使用这个会出现问题,这个是会自动重启服务的。所以无法使用stop关闭服务。使用kill -9 也无法关闭。需要使用mysqladmin shutdown关闭
在通常安装之后的my.cnf可能不存在 或者是比较简单的,比如上面那个就特别简单只有数据存储位置,要是希望使用更多的配置优化。需要在/usr/share/mysql找到5个配置文件的实例,可以根据需要将相应的实例文件复制到my.cnf文件中,进行修改。
以my-huge.cnf为例来看看具体的内容:
还有:
skip-name-resolve (静止mysql做域名解析,节省时间) max-connections=1000 设置最大连接进程数
可以使用使用
show variables like '%buffer%';
查看系统当前的选项的配置可以使用set命令来直接更改选项的值。
5.简单数据库命令
关于mysqladmin是一个很重要的命令,他是mysql的服务器管理程序,可以用来做各种必要的管理。更改用户名密码,创建数据库,调试,显示状态,杀掉服务器线程等。下面是查看进程信息,是否运行。关于更详细的可以查看直接输入mysqladmin就可以查看到。
数据库操作包括查看,选择,创建和删除 主要是在数据库下操作,上面的mysqladmin是在系统命令行操作的。
更多的sql命令建议你找一本数据库的书籍来学习。数据库的学习不是一蹴而就需要不多使用,操作。
关于用户和权限管理除了使用mysqladmin,在数据库中也有对应的SQL命令进行管理,需要用到5张授权表 user ,db, host, tables_priv, columbs_priv
用户授权命令grant 这个实际就是对5张表处理。revoke 回收权限。
mysqldump 用来备份和恢复具体自己可以找下命令(help1)使用什么参数。
上面说的都是命令行的管理,可能在初期使用非常的不习惯,那么有没有图形化的管理界面呢?我们也可以使用phpMyAdmin编写的图形化管理配置程序。这个程序需要和apache+php配合使用。
如何安装phpMyAdmin
我是使用
yum install php httpd -y
然后设置httpd.conf
在里面DirectoryIndex index.html index.php #添加index.php
添加如下内容
AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php
检查LoadModule php5_module modules/libphp5.so 是否已经添加 libphp5.so文件是否存在
然后将下载的phpMyAdmin 解压缩 复制到/var/www/html中 将config.sample.inc.php 修改为config.inc.php 并且编辑,在下方填上任意内容。
但是我在重启httpd服务以后,登录发现无法报错,查询报错日志
我将index.php修改为如下内容测试正常
<?php phpinfo(); ?>
说明httpd没有问题,phpMyAdmin 也是官网下载的最新版本,后来查询得知可能是php版本的问题,因为使用yum安装时候一般都不是最新版本。后来查询的版本是php5.3.3版本却是很低,重新安装php。
我重新安装以后遇到了一些问题但是没有解决
网上找到是安装
yum install php-mbstring
但是问题没有解决也有说需要修改php.ini在里面将msbstring去掉分号生效 但是还是没有解决。后续在处理吧。这个和apache+php有一定的关系,在后续学习apache时候在来详细说说吧。再就是选择phpMyAdmin版本时候需要注意下他使用的php版本相对应 不然就会遇到和我之前安装发现无法使用的问题。