Linux下的Mysql初步认实和搭建LAMP环境
实验目标
Mysql服务器常见概念
Mysql服务器安装及相关配置文件
实战:安装mysql数据库并去除安全隐患
实战:搭建LAMP环境部署Ucenter和Ucenter-home网站
实验概述
MySQL服务概述:
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational DatabaseManagement System:关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
双授权政策:开放源代码版本和商业版本。
例如:很多公司出售应用软件,例如Microsoft、Apple和Oracle;
如RedHat和IBM,则通过为其开放源代码软件提供销售支援、托管或咨询等服务来进行赚钱。但鲜为人知的是,企业可以透过开放源代码发布他们的软件,也可以同时销售该软件的商业版本。
官方网站:
http://www.mysql.com/
http://dev.mysql.com/downloads/mysql/
LAMP架构:
Linux+Apache+Mysql+PHP
模式:
C/S模式mysql
实验环境
1:关闭selinux
vim/etc/selinux/config,把enforcing改为disabled
2:关闭防火墙
service iptables stop
chkconfig iptablesoff
3:客户机
服务端:xuegod63.cn IP:192.168.1.63
客户端:xuegod64.cn IP:192.168.1.64
实验步骤
1:安装数据库相关软件
[[email protected] ~]#yum install httpd mysql-server mysql php php-mysql -y
2:启动服务LAMP相关服务:
[[email protected]~]# /etc/init.d/httpd restart
[[email protected]~]# chkconfig httpd on #开机启动
[[email protected]~]# chkconfig httpd –list #确认服务是否开机自启动
httpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[[email protected]~]# /etc/init.d/mysqld start
/usr/bin/mysqladmin-u root password ‘new-password‘ #在mysql中,root用户是超级管理员帐号, 拥有最高的权限。这里是给root设置一个密码的语法
Alternatively you canrun:
/usr/bin/mysql_secure_installation #此脚本的执行会加强mysql数据库安全。
[[email protected]~]# chkconfig mysqld on
[[email protected]~]# chkconfig mysqld --list
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
#这里启动了LAMP相关服务,并测试查看相关服务是否开机自启动,我们可以看到2 3 4 5 是开启的,那么机器开机运行时就会自动修改2 3 4 5相关配置文件,这也就使其相关服务开机自启动了。
3:查看相关软件的版本
[[email protected]~]# httpd -v
Serverversion: Apache/2.2.15 (Unix)
Serverbuilt: Aug 2 2013 08:02:11
[[email protected]~]# mysql -V
mysql Ver 14.14 Distrib 5.1.71, forredhat-linux-gnu (i686) using readline 5.1
4:查看php-mysql包作用:
[email protected]]# rpm -pqi php-mysql-5.3.3-3.el6_1.3.x86_64.rpm
warning:php-mysql-5.3.3-3.el6_1.3.x86_64.rpm: Header V3 RSA/SHA256 Signature, key IDfd431d51: NOKEY
Name : php-mysql Relocations: (notrelocatable)
Version : 5.3.3 Vendor: Red Hat,Inc.
Release : 3.el6_1.3 Build Date: Mon 24 Oct2011 08:41:54 PM CST
Install Date: (notinstalled) Build Host:x86-004.build.bos.redhat.com
Group : Development/Languages Source RPM:php-5.3.3-3.el6_1.3.src.rpm
Size : 220619 License: PHP
Signature : RSA/8, Wed 02 Nov 2011 09:58:41 PM CST,Key ID 199e2f91fd431d51
Packager : Red Hat, Inc.<http://bugzilla.redhat.com/bugzilla>
URL : http://www.php.net/
Summary : A module for PHP applications that use MySQL databases #php程序连接mysql使用的模块
5:测试数据库连接:
1):数据登录方式
连接mysql数据库,连接本机可以去掉-h
[[email protected] ~]#mysql
或:
[[email protected] ~]#mysql-h IP -u USER -pPASS
#mysql的超级管理员是root拥有最mysql数据库的最高权限。
例:
# mysql -u root
mysql> exit; #退出mysql ,mysql每条命令后都加一个分号 ; 结束。
2):测试
这样是可以直接登录的
6:配置root密码
[[email protected]~]# /usr/bin/mysqladmin -u root password"123456"
#这里是在上文中的mysqld启动的时候,出现的信息,修改mysql用户的密码。
:1):再次直接登录
#这个时候的登录,我们可以看到是的登录不进去的,出现了root用户受限,并且没有使用密码
‘
2):加密码登录
#这个时候我们看到了这样的时候我们是可以登录的
或者这样登录mysql
[[email protected] ~]# mysql -u root -p123456
思考:
下述登录mysql数据库的两种方法哪种比较好。
[[email protected] ~]# mysql -u root -p123456
和
[[email protected] ~]# mysql -u root -p
Enter password:123456
解:
[[email protected] ~]# history
213 mysql -u root -p
214 mysql
215 mysql -u root -p123456
216 history
#在查询命令历史记录中,我们可以看到,这里有登录mysql数据库的用户root密码,这样就构成数据库的安全威胁,数据库作为系统中最重要的地方之一,因此我们要必须保持数据库的安全。
6:去除数据库的安全隐患
1):查看数据库的用户信息
#在这里我们可以看到,localhost xuegod63和127.都是root用户,并且当地用户是具有密码的,这三个用户是可以登录mysql数据库的,并且后面两个是密码为空,那么在最后面的两个匿名用户呢,不仅不是root用户,而且密码为空都可以登录到数据库,这样就构成了极大的数据库安全威胁,
2):去除数据库安全隐患
[[email protected]~]#/usr/bin/mysql_secure_installation
NOTE: RUNNING ALLPARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
#注意:运行此脚本的所有部件被推荐用于所有的在生产中使用的MySQL服务器!请仔细阅读每一步都小心翼翼!
In order to log intoMySQL to secure it, we‘ll need the current
password for the rootuser. If you‘ve just installed MySQL,and
you haven‘t set theroot password yet, the password will be blank,
so you should justpress enter here.
#为了登录到MySQL来保护它,我们需要的为当前root帐号配置个密码。如果您刚刚安装了MySQL,并您没有设置root的密码呢,密码将会是空白,所以你应该只按这里进入。
Enter currentpassword for root (enter for none): 123456 #给mysqlroot用户设置密码
OK, successfully usedpassword, moving on...
You already have aroot password set, so you can safely answer ‘n‘.
#你已经有一个root密码设置,这样你就可以放心地回答‘N‘。
Change the rootpassword? [Y/n] n
By default, a MySQLinstallation has an anonymous user, allowing anyone
to log into MySQLwithout having to have a user account created for
them. This is intended only for testing, and tomake the installation
go a bitsmoother. You should remove them beforemoving into a
productionenvironment.
#缺省情况下,MySQL安装有一个匿名用户,允许任何人
登录到MySQL,而不必对创建用户帐户
他们。这仅用于测试,并且使安装
走位更顺畅。你应该移动到之前删除它们
生产环境。
Remove anonymoususers? [Y/n] Y
... Success!
Normally, root shouldonly be allowed to connect from ‘localhost‘. This
ensures that someonecannot guess at the root password from the network.
#通常情况下,根应该只允许从‘localhost‘的连接。这
确保其他人无法从网络上猜测root密码。
Disallow root loginremotely? [Y/n] Y
... Success!
By default, MySQL comeswith a database named ‘test‘ that anyone can
access. This is also intended only for testing, andshould be removed
before moving into aproduction environment.
#缺省情况下,MySQL带有一个名为“测试”,任何人都可以数据库
访问。这也是仅用于测试,并应被删除
之前移动到生产环境中。
Remove test databaseand access to it?[Y/n] Y
Reloading theprivilege (授权)tableswill ensure that all changes made so far
will take effectimmediately.
#重新加载授权表将确保所有的更改迄今
将立即生效。
Reload privilegetables now? [Y/n] Y
All done! If you‘ve completed all of the above steps,your MySQL
installation shouldnow be secure.
#如果你已经完成以上所有步骤后,你的MySQL
安装现在应该是安全的。
Thanks for usingMySQL!
3):再次查看数据库的用户信息
#这里直接将匿名用户给去除了,并且xuegod63用户也去除,这是不允许远端登录的
7:数据库的主配置文件地址
[[email protected] ~]# ls /etc/my.cnf
/etc/my.cnf
8:数据库允许1.63登录
[[email protected]~]# mysql -u root -h 192.168.1.63 -p123456
ERROR1130 (HY000): Host ‘192.168.1.63‘ is not allowed to connect to this MySQLserver
[[email protected]~]# mysql -u root -p123456
9:测试网站是否支持PHP
[[email protected]~]cd /var/www/html/
[[email protected] html]#vim index.php
[[email protected] html]#cat index.php
<?php
phpinfo();
?>
测试:
这个时候,我们的lamb的环境就搭建好了!!