【實驗】【MySQL】MySQL 5.0 windows版本之初探

secooler發表於2009-04-03
-- 2009-4-2 19:54

1.MySQL 5.0不同平臺安裝介質下載地址:
http://dev.mysql.com/downloads/mysql/5.0.html

2.本實驗使用的安裝介質是:mysql-essential-5.0.77-win32.msi,大小29.5M
下載地址(可直接使用迅雷下載):http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-essential-5.0.77-win32.msi/from/http://mysql.mirror.kangaroot.net/
註釋:上面介質版本更新後將不存在請訪問這個地址獲得最新的安裝介質http://dev.mysql.com/downloads/mysql/5.0.html#win32

3.安裝
和Windows上其他安裝軟體操作的過程很相似,直接點選下一步就完成了安裝。在安裝之後,會提示進行初始化設定(MySQL Server Instance Config Wizard),同樣的操作,下一步,下一步還是下一步。
安裝後的目錄結構:
C:\Program Files\MySQL\MySQL Server 5.0>tree
資料夾 PATH 列表
卷序列號碼為 00350020 B438:D57E
C:.
├─bin
├─data
│  ├─mysql
│  └─test
├─include
├─lib
│  └─opt
└─share
    ├─charsets
    ├─czech
    ├─danish
    ├─dutch
    ├─english
    ├─estonian
    ├─french
    ├─german
    ├─greek
    ├─hungarian
    ├─italian
    ├─japanese
    ├─japanese-sjis
    ├─korean
    ├─norwegian
    ├─norwegian-ny
    ├─polish
    ├─portuguese
    ├─romanian
    ├─russian
    ├─serbian
    ├─slovak
    ├─spanish
    ├─swedish
    └─ukrainian
    
4.啟動,停止
在安裝完成,mysql服務是自動啟動的。
1)命令列啟動與停止方法:
停止:
C:\>net stop mysql
MySQL 服務正在停止..
MySQL 服務已成功停止。

啟動:
C:\>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。

2)使用Windows服務方式啟動與停止方法:
“開始” --&gt 執行 --&gt 輸入“services.msc” 進入到Windows服務管理介面,找到“MySQL”服務,啟停就隨您啦。

5.進入mysql命令列
1)“開始” --&gt 執行 --&gt 輸入“mysql”直接進入
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.0.77-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

2)“開始” --&gt 執行 --&gt 輸入“cmd”進入到Windows命令列介面輸入“mysql”進入
C:\>mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.0.77-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

【注】:之所以可以使用上面的方法進入到mysql命令列,是因為在安裝過程中Path環境變數中已經新增“C:\Program Files\MySQL\MySQL Server 5.0\bin”內容,指向mysql命令地址。
【附】:Windows的環境變數檢視方法:“我的電腦”右鍵屬性 --&gt “環境變數” --&gt 找到“Path”雙擊檢視

3)標準命令格式進入
格式: mysql -h主機地址 -u使用者名稱 -p使用者密碼 (注意:沒有空格)
C:\>mysql -hlocalhost -uroot -pmysql      翻譯:連線主機名“localhost”也就是本機,使用者為“root”,密碼是“mysql”(此密碼是在安裝mysql過程中人為指定的)
C:\>mysql -uroot -pmysql                  翻譯:與上面命令效果相同,忽略“-h”部分表示預設連線本機
C:\>mysql -h192.168.1.131 -uroot -pmysql  翻譯:連線IP地址為“192.168.1.131”的主機,使用者名稱為“root”,密碼是“mysql”

6.退出mysql命令列
1)exit退出
mysql> exit
Bye

2)quit退出
mysql> quit
Bye

3)Ctl+C快捷鍵退出
mysql> Bye

7.修改使用者密碼方法
1)第一種方法是使用“mysqladmin”命令修改密碼
格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼
C:\>mysqladmin -uroot -pmysql password secooler_mysql

2)第二種方法是直接修改mysql使用者下的user表
進入到mysql使用者
mysql> use mysql;
Database changed
更新user表中root使用者的密碼password欄位
mysql> update user set password=password('housw') where user='root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0
重新整理,立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

8.新增加mysql的登陸使用者
1)建立一個超級危險,許可權巨大的使用者secooler_god,可以在internet上任何一個節點進行登陸。
mysql> grant all privileges on *.* to secooler_god@"%" identified by "god" with grant option;
Query OK, 0 rows affected (0.01 sec)

2)建立一個只在MySQL資料庫所在的那臺主機上登陸,具有增刪改許可權的secooler_local使用者。
mysql> grant select,insert,update,delete on mysql.* to secooler_local@localhost identified by "secooler_local";
Query OK, 0 rows affected (0.00 sec)

3)清除secooler_local登陸使用者密碼的方法是重新操作將密碼部分置空。
mysql> grant select,insert,update,delete on mysql.* to secooler_local@localhost identified by "";
Query OK, 0 rows affected (0.00 sec)

9.遨遊mysql資料庫的最基本命令
1)檢視系統中都存在什麼資料庫
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

2)顯示mysql資料庫中包含哪些表
mysql> use mysql
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
17 rows in set (0.00 sec)

3)顯示資料表的表結構
mysql> desc user;
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Field                 | Type                              | Null | Key | Default | Extra |
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Host                  | char(60)                          | NO   | PRI |         |       |
| User                  | char(16)                          | NO   | PRI |         |       |
| Password              | char(41)                          | NO   |     |         |       |
| Select_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Insert_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Update_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Delete_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Create_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Drop_priv             | enum('N','Y')                     | NO   |     | N       |       |
| Reload_priv           | enum('N','Y')                     | NO   |     | N       |       |
| Shutdown_priv         | enum('N','Y')                     | NO   |     | N       |       |
| Process_priv          | enum('N','Y')                     | NO   |     | N       |       |
| File_priv             | enum('N','Y')                     | NO   |     | N       |       |
| Grant_priv            | enum('N','Y')                     | NO   |     | N       |       |
| References_priv       | enum('N','Y')                     | NO   |     | N       |       |
| Index_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Alter_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Show_db_priv          | enum('N','Y')                     | NO   |     | N       |       |
| Super_priv            | enum('N','Y')                     | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y')                     | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Execute_priv          | enum('N','Y')                     | NO   |     | N       |       |
| Repl_slave_priv       | enum('N','Y')                     | NO   |     | N       |       |
| Repl_client_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y')                     | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y')                     | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y')                     | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y')                     | NO   |     | N       |       |
| Create_user_priv      | enum('N','Y')                     | NO   |     | N       |       |
| ssl_type              | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |
| ssl_cipher            | blob                              | NO   |     | NULL    |       |
| x509_issuer           | blob                              | NO   |     | NULL    |       |
| x509_subject          | blob                              | NO   |     | NULL    |       |
| max_questions         | int(11) unsigned                  | NO   |     | 0       |       |
| max_updates           | int(11) unsigned                  | NO   |     | 0       |       |
| max_connections       | int(11) unsigned                  | NO   |     | 0       |       |
| max_user_connections  | int(11) unsigned                  | NO   |     | 0       |       |
+-----------------------+-----------------------------------+------+-----+---------+-------+
37 rows in set (0.00 sec)


4)建立一個名為secooler的資料庫
mysql> create database secooler;
Query OK, 1 row affected (0.00 sec)

5)在secooler使用者下建立一個sec_test_tab表
mysql> use secooler
Database changed
mysql> create table sec_test_tab ( a int);
Query OK, 0 rows affected (0.11 sec)

6)向表sec_test_tab中插入一條記錄
mysql> insert into sec_test_tab values (100);
Query OK, 1 row affected (0.00 sec)

7)查詢表中的記錄
mysql> select * from sec_test_tab;
+------+
| a    |
+------+
|  100 |
+------+
1 row in set (0.00 sec)

8)刪除表中的記錄
mysql> delete from sec_test_tab;
Query OK, 1 row affected (0.00 sec)

9)刪除表
mysql> drop table sec_test_tab;
Query OK, 0 rows affected (0.02 sec)

10)刪除資料庫
mysql> drop database secooler;
Query OK, 0 rows affected (0.00 sec)

10.MySQL的一些特色select語句
1)查詢mysql版本
mysql> select version();
+---------------------+
| version()           |
+---------------------+
| 5.0.77-community-nt |
+---------------------+
1 row in set (0.00 sec)

2)查詢當前日期
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2009-04-02     |
+----------------+
1 row in set (0.00 sec)

3)查詢當前時間
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-04-02 23:13:49 |
+---------------------+
1 row in set (0.00 sec)

4)查詢登陸使用者
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

5)四則運算
mysql> select (10+15)*4/3;
+-------------+
| (10+15)*4/3 |
+-------------+
|     33.3333 |
+-------------+
1 row in set (0.00 sec)

6)pi值
mysql> select pi();
+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+
1 row in set (0.00 sec)

7)兩條sql語句連寫
mysql> select current_date(); select now();
+----------------+
| current_date() |
+----------------+
| 2009-04-02     |
+----------------+
1 row in set (0.00 sec)

+---------------------+
| now()               |
+---------------------+
| 2009-04-02 23:15:01 |
+---------------------+
1 row in set (0.00 sec)

8)返回表中記錄的前2行內容
mysql> use mysql
Database changed
mysql> select user,host,password from user limit 2;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
|      | localhost |                                           |
+------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

mysql> select user,host,password from user limit 0,2;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
|      | localhost |                                           |
+------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)

9)返回第2行開始的3行資料
mysql> select user,host,password from user limit 1,3;
+--------------+-----------+-------------------------------------------+
| user         | host      | password                                  |
+--------------+-----------+-------------------------------------------+
|              | localhost |                                           |
| secooler_god | %         | *895DC6A9BBBCFCDB8B7FDB51FA0383A59F38C60E |
|              | %         |                                           |
+--------------+-----------+-------------------------------------------+
3 rows in set (0.01 sec)

11.備份恢復mysql資料庫
使用mysqldump命令匯出secooler資料庫
C:\>mysqldump -uroot -pmysql secooler > secooler.sql
使用mysqldump命令匯入secooler資料庫
C:\>mysqldump -uroot -pmysql secooler < secooler.sql
使用mysql特有的命令批次的匯入(需要修改指令碼,例如本次實驗需要在secooler.sql檔案的前面新增use secooler)
C:\>mysql -uroot -p < secooler.sql
Enter password: *****

C:\>
【附】
dump出的secooler.sql檔案內容(資料量超大時該檔案內容一定是相當的壯觀!):
-- MySQL dump 10.11
--
-- Host: localhost    Database: secooler
-- ------------------------------------------------------
-- Server version    5.0.77-community-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `sec_test_tab`
--

DROP TABLE IF EXISTS `sec_test_tab`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `sec_test_tab` (
  `a` int(11) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `sec_test_tab`
--

LOCK TABLES `sec_test_tab` WRITE;
/*!40000 ALTER TABLE `sec_test_tab` DISABLE KEYS */;
INSERT INTO `sec_test_tab` VALUES (100),(100),(100);
/*!40000 ALTER TABLE `sec_test_tab` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2009-04-02 15:24:13

12.小結
MySQL資料庫還是很小巧、靈活、簡單而又強大“滴”。

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-584453/,如需轉載,請註明出處,否則將追究法律責任。

相關文章