天天看点

Mysql数据库服务器的安装与配置

  一、Mysql简介

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

它具有以下特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径

8.提供用于管理、检查、优化数据库操作的管理工具

9.可以处理拥有上千万条记录的大型数据库

二、Mysql的安装

首先,看看自己电脑里是否安装了Mysql软件rpm -qa | grep mysql

如果没有安装,则放入光盘:rpm -ivh mysql-server-*.rpm(如果不能直接安装,提示libmysqlclients.so.15 is needed之类的错误)

那么,进入光盘下的CenOS目录中:

[root@localhost CentOS]# rpm -ivh mysql-server-5.0.45-7.el5.i386.rpm

error: Failed dependencies:

        libmysqlclient.so.15 is needed by mysql-server-5.0.45-7.el5.i386

        libmysqlclient.so.15(libmysqlclient_15) is needed by mysql-server-5.0.45-7.el5.i386

        libmysqlclient_r.so.15 is needed by mysql-server-5.0.45-7.el5.i386

        libmysqlclient_r.so.15(libmysqlclient_15) is needed by mysql-server-5.0.45-7.el5.i386

        mysql = 5.0.45-7.el5 is needed by mysql-server-5.0.45-7.el5.i386

        perl-DBD-MySQL is needed by mysql-server-5.0.45-7.el5.i386

[root@localhost CentOS]# rpm -ivh mysql-5.0.45-7.el5.i386.rpm

Preparing...                ########################################### [100%]

   1:mysql                  ########################################### [100%]

[root@localhost CentOS]# rpm -ivh perl-DBD-MySQL-3.0007-1.fc6.i386.rpm

   1:perl-DBD-MySQL         ########################################### [100%]

   1:mysql-server           ########################################### [100%]

[root@localhost CentOS]#

请大家注意:

解决包依赖顺序:Perl-DBD=>mysql=>mysql-server

或者,你的网速快,便可以一步登天:yum install mysql-server

三、Mysql服务的启动、自动运行

老生常谈的话题了,在此略掉,可以参考别的服务的命令。

四、登录

Mysql默认用户名为“root”,密码为空,初次登陆:

mysqladmin -u root -p 原密码 新密码

这样就可以改密码了。

五、设置phpMyAdmin

1、下载phpMyAdmin-版本号.tar.gz

2、解压到/var/www/html下,如需要则修改权限

3、在浏览器中即可访问

如果出现“无法载入mysql扩展,请检查PHP设置”的错误,在CenOS下,是缺少php-mysql软件导致,进入DVD光盘:

[root@localhost CentOS]# rpm -ivh php-pdo-5.1.6-20.el5.i386.rpm

   1:php-pdo                ########################################### [100%]

[root@localhost CentOS]# rpm -ivh php-mysql-5.1.6-20.el5.i386.rpm

   1:php-mysql              ########################################### [100%]

即可搞定!!!

PS:

MYSQL常用命令

1:使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2:2、创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

mysql> SHOW TABLES;

5:创建一个数据库表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), *** CHAR(1));

6:显示表的结构:

mysql> DESCRIBE MYTABLE;

7:往表中加入记录

mysql> insert into MYTABLE values (”hyq”,”M”);

8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10:删除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中数据

mysql>update MYTABLE set ***=”f” where name=’hyq’;

以下是无意中在网络看到的使用MySql的管理心得,

在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld start”命令,注意启动者应具有管理员权限。

刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:

use mysql;

delete from User where User=”";

update User set Password=PASSWORD(’newpassword’) where User=’root’;

如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令:

mysql -uroot -p;

mysql -uroot -pnewpassword;

mysql mydb -uroot -p;

mysql mydb -uroot -pnewpassword;

上面命令参数是常用参数的一部分,详细情况可参考文档。此处的mydb是要登录的数据库的名称。

在 进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技 术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用 户。其中GRANT的常用用法如下:

grant all on mydb.* to NewUserName@HostName identified by “password” ;

grant usage on *.* to NewUserName@HostName identified by “password”;

grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”;

grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;

若 要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH GRANT OPTION选项。而对于用插入User表添加的用户,Password字段应用PASSWORD 函数进行更新加密,以防不轨之人窃看密码。对于那些已经不用的用户应给予清除,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段, 也可以使用REVOKE操作。

下面给出本人从其它资料(www.cn-java.com)获得的对常用权限的解释:

全局管理权限:

FILE: 在MySQL服务器上读写文件。

PROCESS: 显示或杀死属于其它用户的服务线程。

RELOAD: 重载访问控制表,刷新日志等。

SHUTDOWN: 关闭MySQL服务。

数据库/数据表/数据列权限:

ALTER: 修改已存在的数据表(例如增加/删除列)和索引。

CREATE: 建立新的数据库或数据表。

DELETE: 删除表的记录。

DROP: 删除数据表或数据库。

INDEX: 建立或删除索引。

INSERT: 增加表的记录。

SELECT: 显示/搜索表的记录。

UPDATE: 修改表中已存在的记录。

特别的权限:

ALL: 允许做任何事(和root一样)。

USAGE: 只允许登录–其它什么也不允许做。