linux下mysql安装与使用

0 views
Skip to first unread message

love0...@gmail.com

unread,
Mar 23, 2006, 7:52:52 PM3/23/06
to 52info

MySQL安装与使用:
一、什麽是 MySQL

MySQL (发音为 "My Ess Que Ell")是 Tcx
公司(http://www.tcx.se)开发的一个多人使用、多执行绪的
SQL 资料库 Server。MySQL
主要的目标在快速、稳定和容易使用。

MySQL 可在此 http://www.mysql.net/ 取得。

二、MySQL 的安装

本文所使用的 MySQL 版本为
mysql-3.22.27.tar.gz(原始码档),作业环境为 RedHat6.0
+CLE0.8 。

MySQL 预设情况下会安装至 /usr/local
目录下,不过为了日後移除方便,建议将 mysql
独立安装在 /usr/local/mysql 目录。底下为安装 MySQL
的步骤:

取得 mysql-3.22.27.tar.gz 後, 於 /usr/local 目录下解开:

# cd /usr/local

# tar zxvf mysql-3.22.27.tar.gz

# cd mysql-3.22.27

设定 configure 安装选项,选择安装目录
(prefix)以及支援中文 Big5 码(with-charset=big5):

# ./configure --prefix=/usr/local/mysql \

#--with-charset=big5

开始编译并安装:

# make

# make install

# scripts/mysql_install_db

最後一个步骤是用来产生 MySQL grant tables(会建立一个
mysql 资料库和一些 tables,用来管理使用 MySQL
的授权资讯,也就是使用者有哪些使用资料库的权限)。


三、启动、停止 MySQL

要启动 MySQL 的方法:(以本文将 MySQL 安装在
/usr/local/mysql 为例)

# /usr/local/mysql/share/mysql.server start

注意在第一次执行前,须将 mysql.server
设成可执行(chmod 744
mysql.server),另外可将这行指令加在 /etc/rc.d/rc.local
档中,让 MySQL 在开机时自动启动。

要停止 MySQL 的方法:

# /usr/local/mysql/bin/mysqladmin shutdown

如果你为 MySQL Administrator root 帐号(非作业系统的
root)设了密码,要停止 MySQL
则必须像下列这样做,MySQL 会询问你 root
的密码後才会执行 shutdown 的工作:

# /usr/local/mysql/bin/mysqladmin -u root -p shutdown

四、管理与使用 MySQL 简介

在你开始前 MySQL 提供了许多工具 (Client Tools)来与
MySQL 资料库 Server 连线,其中最主要的为 mysql
交谈式连线工具与 mysqladmin
公用程式,大部份时候使用者会用 mysql 来和资料库
Server 交谈。底下就以 mysql
连线工具来介绍如何维护与使用
MySQL。(以本文安装为例,mysql 工具位於
/usr/local/mysql/bin/mysql)。

mysql 的使用语法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]

MySQL
资料库有自己一套使用者帐号与权限管控方法,所以这边所指定的
username 与 password 是 MySQL
的使用者与密码,而不是作业系统的使用者与密码(当然任何使用者都能执行
mysql ,然後以 MySQL 的任何帐号进入使用) 。

在你第一次安装好 MySQL 时,MySQL 的管理帐号为
root,没有设定密码 (非作业系统的
root)。所以在开始前,请先照下列步骤为 root
设好密码:

使用 mysql 与 MySQL 资料库 Server 连线:

# /usr/local/mysql/bin/mysql -u root mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 201 to server version: 3.22.27

Type 'help' for help.

mysql>

在下了 mysql -u root mysql 指令,指定以 root 帐号并开启
mysql 系统资料库,连线至 MySQL
後,会看到一些提示讯息与 mysql
工具的提示符号,以後大部份的工作皆在此提示符号下完成。


更改 MySQL系统管理者 root 密码:

mysql> update user set password=password('新密码') where
user='root';

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2 Changed: 0 Warnings: 0

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

注意每个指令後要加上一个分号 ";" 才会让 mysql
开始执行。而第二道指令会让已载入记忆体的 mysql
系统资料库更新,最後离开 mysql 工具程式。

在更新 root 密码後,日後要与 MySQL 连线的方法为:

mysql -u root -p新密码

或者是这样,让 mysql 询问 root 的密码:

mysql -u root -p

资料库维护
接下来,我们以简单的通讯录资料库作为例子,来介绍如何用
mysql
工具程式来做资料库的维护(新增、授权、资料表维护等)。


首先,以 MySQL root 帐号连线後建立一 addbook 资料库:

# /usr/local/mysql/bin/mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 207 to server version: 3.22.27

Type 'help' for help.

mysql> create databae addbook;

Query OK, 1 row affected (0.00 sec)

指定使用 addbook 资料库,并建立一个 friends 资料表:

mysql> use addbook;

Database changed

mysql> create table friends (

  -> name Char(15),

  -> telphone VarChar(20),

  -> icq Char(10),

  -> address VarChar(30)

  -> );

Query OK, 0 rows affected (0.00 sec)

新增几笔资料,并查询看看:

mysql> insert into friends values(

  -> "maa", "29016710", "46243046", "台北县新庄市"

  -> );

Query OK, 1 row affected (0.00 sec)

mysql> insert into friends (name, icq, telphone, address ) Values (

  -> "cxlin", "39425893", "7654321", "台北县"

  -> );

Query OK, 1 row affected (0.01 sec)

mysql> select * from friends;

+-------+----------+----------+--------------+

| name | telphone | icq | address |

+-------+----------+----------+--------------+

| maa | 29016710 | 46243046 | 台北县新庄市 |

| cxlin | 7654321 | 39425893 | 台北县 |

+-------+----------+----------+--------------+

2 rows in set (0.00 sec)

第二个 insert
指令指定了资料栏位的插入顺序,用法较第一个为弹性,而第一个指令必须依资料表建立结构时的顺序插入资料。


更新、删除资料表记录:

mysql> update friends set address = "桃园县" where name = "cxlin";

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from friends where name = "cxlin";

+-------+----------+----------+---------+

| name | telphone | icq | address |

+-------+----------+----------+---------+

| cxlin | 7654321 | 39425893 | 桃园县 |

+-------+----------+----------+---------+

1 row in set (0.00 sec)

mysql> delete from friends where name = "maa";

Query OK, 1 row affected (0.01 sec)

mysql> select * from friends;

+-------+----------+----------+---------+

| name | telphone | icq | address |

+-------+----------+----------+---------+

| cxlin | 7654321 | 39425893 | 桃园县 |

+-------+----------+----------+---------+

1 row in set (0.00 sec)

最後,建好资料库与资料表後,把 addbook
资料库中所有资料表的使用权限(select、insert、update、delete)授权给
maa@localhost(再次提醒,此处的 maa 为 MySQL
的使用者帐号,而非作业系统的 maa 帐号):

mysql> grant select, insert, update, delete

-> on addbook.*

-> to maa@localhost identified by '1234567';

Query OK, 0 rows affected (0.00 sec)

之後,可用 maa 的身份进入 MySQL 存取 addbook 资料库:

# /usr/local/mysql/bin/mysql -u maa -p addbook

Enter password:

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 211 to server version: 3.22.27

Type 'help' for help.

mysql> status

--------------

./mysql Ver 9.36 Distrib 3.22.27, for pc-linux-gnu (i686)

Connection id: 26

Current database: addbook

Current user: maa@localhost

Server version 3.22.27

Protocol version 10

Connection Localhost via UNIX socket

UNIX socket /tmp/mysql.sock

Uptime: 2 hours 29 min 33 sec

Threads: 11 Questions: 107 Slow queries: 0 Opens: 11 Flush tables: 1

Open 7

--------------

收回资料库使用权限的方法如下(以 MySQL root
进入):

mysql> revoke delete on addbook.* from maa@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> revoke all privileges on addbook.* from maa@localhost;

Query OK, 0 rows affected (0.00 sec)

第二个指令用来收回全部的权限。

五、mysqladmin 公用程式的使用

mysqladmin 公用程式可用来维护 MySQL
比较一般性的工作(新增、删除资料库、设定使用者密码及停止
MySQL 等等),详细的说明可以使用 mysqladmin --help
来查看。(以本文的安装为例 mysqladmin 位於
/usr/local/mysql/bin/mysqladmin)。

新增资料库 dbtest

# /usr/local/mysql/bin/mysqladmin -u root -p create dbtest

Enter password:

Database "dbtest" created.

删除资料库

# /usr/local/mysql/bin/mysqladmin -u root -p drop dbtest

Enter password:

Dropping the database is potentially a very bad thing to do.

Any data stored in the database will be destroyed.

Do you really want to drop the 'dbtest' database [y/N]

y

Database "dbtest" dropped

设定使用者密码(将 maa 的密码改为 7654321,mysqladmin
会先询问 maa 的原密码)

# /usr/local/mysql/bin/mysqladmin -u maa -p password 7654321

Enter password:

#

停止 MySQL 服务

# ./mysqladmin -u root -p shutdown

Enter password:

注意,shutdown MySQL 後,必须由作业系统的 root
帐号执行下列指令才能启动 MySQL:

/usr/local/mysql/share/mysql/mysql.server start

六、结语:

MySQL
资料库的确是值得推广的一个产品,它的稳定性已经稳得大家的赞同,只要你曾经学习过
SQL Language(结构化查询语言),相信要摸熟 MySQL
的使用只消一两个小时的时间。如果搭配 PHP (Personal
HomePage Program)和 Apache Web
Server,更可很轻松建构一个与资料库结合的动态 Web
Site。如果再配合 phpMyAdmin 这个 Web 化的 MySQL
管理工具,建立 MySQL 的资料库和 MySQL
的管理将会更加方便。

Reply all
Reply to author
Forward
0 new messages