mysql数据库的学习


Mysql 数据库

MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。并且能够支持多平台。

各种版本下载地址:http://dev.mysql.com/downloads/

学习资料:http://dev.mysql.com/doc/  MySQL Reference Manual (mysql参考手册)

可视化管理工具:http://dev.mysql.com/downloads/other/mysqlcc.html

在这里使用的是4.1.12版本,当前最高版本是5.0.4-beta。


1、数据库的安装:

(1)、windowXp 下安装4.1.12 直接点击下载的exe文件就可以安装了。

(2)、RedHat Enterprise Linux 4 (x86)下安装server4.1.12和client4.1.12

shell> rpm -i MySQL-server-standard-4.1.12-0.rhel4.i386.rpm

shell> rpm -i MySQL-client-standard-4.1.12-0.rhel4.i386.rpm

注:RedHat Enterprise Linux 4软件包自带4.1.7


2、数据库的应用

◇启动mysql数据库的服务

(1)、windowXp下 C:\>mysqld 回车即可。(这里将mysql的bin路径加入到环境变量的path中,使其各种路径下都能直接启动)

(2)、linux下 #service mysqld start回车即可。

◇登录数据库

首先要确认服务器处于运行状态。(默认的超级用户名为:root )

C:\> mysql –h hostname -u username –p

Enter password:******

hostname为mysql的服务器名或服务器的IP

username为用户名

*****为用户密码

◇ 本地测试:

>mysql -h localhost -u root -p

Enter password: ******

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

Your MySQL connection id is 9 to server version: 4.1.10a-nt


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


mysql>


◇ 显示当前用户可操作的数据库:用show命令

mysql> show databases;

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

| Database |

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

| mysql  |

| test   |

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

2 rows in set (0.00 sec)


◇ 确定使用其中的一个数据库:用use命令

mysql> use mysql;

Database changed


◇ 显示当前数据库中的所有

mysql> show tables;

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

| Tables_in_mysql       |

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

| columns_priv         |

| db             |

…….

| time_zone_transition_type    |

| user             |

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

15 rows in set (0.00 sec)


◇ 建立数据库(建数据库之前,必须确认当前不存在该数据库,否则用drop命令删除掉)

mysql> drop database if exists mydb;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database mydb;

Query OK, 1 row affected (0.02 sec)


◇ 建立表user

mysql> use mydb;

Database changed

mysql> drop table if exists `user`;

Query OK, 0 rows affected (0.00 sec)

mysql> create table `user` (

  ->  `ID` int(5) NOT NULL auto_increment,

  ->  `Name` varchar(20) NOT NULL default '',

  ->  `Password` varchar(20) NOT NULL default '',

  ->  PRIMARY KEY (`ID`)

  -> ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Query OK, 0 rows affected (0.06 sec)


◇ 显示user 表的结构

mysql> desc user;

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

| Field  | Type   | Null | Key | Default | Extra   |

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

| ID   | int(5)  |  | PRI | NULL | auto_increment |

| Name  | varchar(20) |  |  |   |       |

| Password | varchar(20) |  |  |   |       |

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

3 rows in set (0.01 sec)


◇ 数据库的导出:用自带的mysqldump 小程序

C:\>mysqldump mydb -h localhost -u root -p>mydb.sql

Enter password: ******

说明:mydb为当前要导出的数据库名称;mydb.sql数据导出的存放文件

mydb.sql内容如下:

-- MySQL dump 10.9

--

-- Host: localhost  Database: mydb

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

-- Server version  4.1.10a-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 */;

/*!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' */;

--

-- Table structure for table `user`

--

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

 `ID` int(5) NOT NULL auto_increment,

 `Name` varchar(20) NOT NULL default '',

 `Password` varchar(20) NOT NULL default '',

 PRIMARY KEY (`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Dumping data for table `user`

--

/*!40000 ALTER TABLE `user` DISABLE KEYS */;

LOCK TABLES `user` WRITE;

UNLOCK TABLES;

/*!40000 ALTER TABLE `user` ENABLE KEYS */;


/*!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 */;


◇ 数据库的导入:

C:\>mysql -h localhost -u root -p mydb<mydb.sql

Enter password: ******

说明:localhost为mysql的服务器名或IP ;

  Mydb为数据将要导入的目标数据库;mysql.sql为将要导入的数据文件;


◇ 修改MySql用户密码方法:

方法一:使用mysqladmin (mysql自带的一个小应用程序)

首先进入命令行, 再进入mysql安装目录的bin下:

>mysqladmin –h hostname –u username –p password new_password

Enter password: ******

说明:localhost为mysql服务器的host,也可以是mysql服务器的IP。

    username 为当前要修改密码的用户名。

    new_password为新密码(该字符串不需要加引号)。

    ****** 为原来的密码。

方法二:使用SET PASSWORD语句

此时,首先需要用超级用户登录。

mysql> SET PASSWORD FOR username@hostname=PASSWORD(‘

new_password’);


◇ 添加mysql用户:

Mysql>GRANT ALL ON *.* username@hostname IDENTIFIED BY

‘user_password’;

◇使用MySql Control Center来管理数据库,该工具对数据库建立和维护提供友好的可视化操作界面。

http://dev.mysql.com/downloads/other/mysqlcc.html