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 的管理将会更加方便。
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 的管理将会更加方便。
- 上一篇: MYSQL数据的导出和导入工具:MYSQLDUMP
- 下一篇: 关于MYSQL中文排序的方法
-= 资 源 教 程 =-
文 章 搜 索