简介
Apache HTTP Server作为优秀的Web服务器软件,提供了面向用户的前端应用功能。而在实际的企业网站平台中,为了提供更丰富、更强大的Web应用功能,往往还需要有后台数据库、网页编程语言等多种角色的支持。
本章将学习如何安装MySOL数据库,以及使用和维护MySOL数据库的基本操作。
本章重点
安装及使用MySOL数据库
MySOL数据库的用户授权
一、MySQL服务基础
MySOL是一个真正的多线程、多用户的SOL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySOL AB公司进行开发、发布和支持,之后历经Sun 公司收购MySOL AB公司,Oracle公司收购Sun公司的过程,目前MySOL项目由Oracle公司负责运营和维护。
本节将介绍MySOL的编译安装过程、服务控制方法,以及如何使用客户端工具访问MySOL数据库。
MySOL 服务器默认通过TCP3306端口提供服务。通过编辑/etc/my.cnf配置文件中[mysql]配置段的“port=3306”行,可以更改监听端口。
二、数据库用户授权
MySOL 数据库的root用户账号拥有对所有库、表的全部权限,频繁使用root 账号会给数据库服务器带来一定的安全风险。实际工作中,通常会建立一些低权限的用户,只负责一部分库,表的管理和维护操作,甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低。
1.授予权限
GRANT 语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT 语句将会创建新的用户,否则,GRANT 语句用于修改用户信息。语句格式如下所示。
GRANT 权限列表 oN 库名.表名 To 用户名来源地址 [IDENTIFIEDBY ’密码!] 使用GRANT语句时,需要注意的事项如下。
权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update,delete”。使用“all”表示所有权限,可授权执行任何操作。
库名,表名:用于指定授权操作的库和表的名称,其中可以使用通配符“”。例如,使用“auth.”表示授权操作的对象为auth库中的所有表。
用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.bdqn.com"“192.168.1.%”等。
DENTFEDBY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省“DENTIFIED BY"部分,则用户的密码将为空
2.查看授权
当我们忘记授权指定用户指定主机时,可以查看指定用户指定主机拥有得数据库权限
SHOW GRANTS 语句:专门用来查看数据库用户的授权信息,通过FOR子句可指定查看的用户对象(必须与授权时使用的对象名称一致)。语句格式如下所示。SHOW GRANTS FOR 用户名 来源地址
3.撤销权限
REVOKE 语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到MySOL服务器,但将被禁止执行对应的数据库操作。语句格式如下所示。
REVOKE 权限列表 oN 数据库名.表名 FROM 用户名来源地址
一、安装Mysql
1.安装依赖程序
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# mount /dev/cdrom /mnt/
[root@centos01 ~]# yum -y install cmake ncurses-devel
2.创建管理mysql组和用户
[root@centos01 ~]# groupadd mysql
[root@centos01 ~]# useradd -M -s /sbin/nologin -g mysql mysql
3.配置mysql
[root@centos01 ~]# umount /mnt/
[root@centos01 ~]# mount /dev/cdrom /mnt/
[root@centos01 ~]# tar zxvf /mnt/mysql-5.5.22.tar.gz -C /usr/src/
[root@centos01 ~]# cd /usr/src/mysql-5.5.22/
[root@centos01 mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc/
-DCMAKE_INSTALL_PREFX:指定将MySQL 数据库程序安装到某目录下,如目录/usr/local/mysql。
-DSYSCONFDR:指定初始化参数文件目录。
-DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf-8。
-DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于utf-8字符集的通用规则。
-DWITLEXTRA_CHARSETS:指定额外支持的其他字符集编码。
4.编译安装mysql
[root@centos01 mysql-5.5.22]# make && make install
5.生成mysql服务配置文件
[root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
6.生成服务配置文件
[root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld
[root@centos01 mysql-5.5.22]# chmod +x /etc/init.d/mysqld
7.添加系统服务设置开机自动启动
[root@centos01 mysql-5.5.22]# chkconfig --add mysqld
[root@centos01 mysql-5.5.22]# chkconfig --level 35 mysqld on
[root@centos01 mysql-5.5.22]# cd
8.优化mysql命令
[root@centos01 ~]# vim /etc/profile
# /etc/profile
PATH=$PATH:/usr/local/mysql/bin/
[root@centos01 ~]# source /etc/profile
[root@centos01 ~]# mysql
9.初始化mysql
[root@centos01 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
实验案例!
需求描述
1.编译安装MySOL服务器,并添加为mysqld系统服务。
2.为MySOL数据库的root用户设置密码,删除用户名、密码为空的用户记录。
3.新建名为“bdqn”的库,授权用户rundb从本机访问,具有所有操作权限。
4.以rundb用户登录,在bdqn库中创建stuinfo表,并录入数据,如表3-2所示。
1.编译安装MySOL服务器,并添加为mysqld系统服务**
[root@centos01 ~]# systemctl start mysqld
[root@centos01 ~]# netstat -anptu | grep 3306
2.为MySOL数据库的root用户设置密码,删除用户名、密码为空的用户记录。
[root@centos01 ~]# mysqladmin -uroot password
[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> delete from mysql.user where user="" and password="";
3.新建名为“bdqn”的库,授权用户rundb从本机访问,具有所有操作权限。
1)新建bdqn库
mysql> create database bdqn;
mysql> show databases;
2)授权rundb用户从本机访问具有所有操作权限
mysql> grant all on bdqn.* to 'rundb'@'localhost' identified by 'pwd@123';
mysql> show grants for 'rundb'@'localhost';
mysql> exit
4.以rundb用户登录,在bdqn库中创建stuinfo表,并录入数据
1)使用rundb登录
[root@centos01 ~]# mysql -urundb -ppwd@123
2)在bdqn库中创建stuinfo表
mysql> create table bdqn.stuinfo(姓名 char(3),性别 char(2),年龄 char(100),联系电话 char(11)),email地址 char(20),primary key(联系电话));
mysql> desc bdqn.stuinfo;
3)插入数据
mysql> insert into bdqn.stuinfo values ('张无忌','男','19','17512345678','zhangwuji@qq.com');
mysql> insert into bdqn.stuinfo values ('居易白','男','24','17587654321','juyibai@163.com');
mysql> insert into bdqn.stuinfo values ('蓝采和','男','24','17255201314','lancaihe@qq.com');
4)查看数据
mysql> use bdqn;
mysql> select * from bdqn.stuinfo;
掌握了上述各种MySOL管理命令的使用,已经可以满足大多数网络管理员(非专职数据库管理员)的工作需要。若希望了解更多关于MySOL语句的知识,可以参阅MySOL的在线参考手册。