作者: feng
原文地址: http://www.path8.net/tn/archives/1502
(因为使用的mysql版本是mysql-5.6.21-win32, 故配置部分略有修改)
以下为原文:
本文针对mysql-noinstall版本,也就是解压缩版的安装配置应用做了个总结,这些操作都是平时很常用的操作。文章中不对mysql的可执行文 件安装版做介绍了,可执行安装版有很多的弊端,我也不一一说了。总之,我喜欢绿色环保的,包括eclipse、tomcat、jboss、apache也 是,即使windows操作系统重装了,这些软件也不需要重装,可谓一劳永逸!
使用解压缩版安装还有哪些好处?
深入了解mysql,了解它作用程序的运行的来龙去脉。
当然使用linux的话,就可以直接路过了。
环境:
Windows 2000/XP/2003
mysql-noinstall-5.0.37-win32.zip (我使用的版本是mysql-5.6.21-win32)
一、下载MySQL
http://www.mysql.com/downloads
二、安装过程
1、解压缩mysql-noinstall-5.0.37-win32.zip到一个目录,加入解压缩到E:\myserver目录。
2、编写mysql的运行配置文件my.ini
my.ini
---------------------------------------------------
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=...
datadir=...
character_set_server=utf8
-----------------------------------------------------
3、安装mysql服务
从MS-DOS窗口进入目录E:\myserver\mysql-5.0.37-win32\bin,运行如下命令:
mysqld --install mysql5 --defaults-file= E:\myserver\mysql-5.0.37-win32\my.ini
4、启动mysql数据库
还在上面的命令窗口里面,输入命令:net start mysql5
这样就启动了mysql服务。
5、(本地)登录mysql数据库
还在上面的命令窗口里面,输入命令:mysql -u root -p
回车后提示输入密码。
mysql解压缩版初次安装管理员root的密码为空,因此直接再回车一次就登入mysql数据库了。
如果你不是初次登录mysql,你还拥有网络地址的用户,那么你可以用如下命令登录到mysql服务器,这个mysql服务器也许在远方,也许在本地。这种登录方式叫“远程登录”,命令如下:
mysql -h 192.168.3.143 -u root -p
mysql -h 192.168.3.143 -u root -pleizhimin
-h是指定登录ip,-u指定用户,-p指定密码,-p后如果什么都不写,那么接下来会提示输入密码,-p后也可以直接写上密码,这样就不再需要输入密码了。
6、操作数据库和表
登录mysql数据库后,就可以执行指定操作数据库,用命令:use 数据库名
指定了操作的数据库对象后,就可以操作数据库中的表了,操作方法当然是SQL命令了,呵呵。
7、更改mysql数据库管理员root的密码
mysql数据库中默认有个mysql数据库,这个是mysql系统的数据库,用来保存数据库用户、权限等等很多信息。要更改密码,就要操作mysql数据库的user表。
现在mysql的root用户密码还为空,很不安全的,假设要更改密码为“leizhimin”。
还在上面的命令窗口里面,执行如下命令:
use mysql;
grant all on *.* to root@'%' identified by 'leizhimin' with grant option;
commit;
这段命令的含义是,添加一个root用户,拥有所有的权限,密码为“leizhimin”,并且这个用户不但可以本地访问,也可以通过网络访问。强 调这个原因是mysql系统自带的的那个root用户只能从本地访问,它@字符后面的标识是localhost。具体可以查看mysql数据的uer表看 看,这样以来,就有两个root用户了,一个是系统原来的,一个新建的,为了管理的方便,就将mysql自带root删除,保留刚创建的这个root用 户,原因是这个用户可以通过网络访问mysql。
然后,删除用户的命令:
user mysql;
delete from user where user='root' and host='localhost';
commit;
其实上面的方法是授权命令,在授权的同时创建了数据库用户。mysql也有单独的修改用户密码的方法,下面看看如何操作。
首先,先建立一个用户lavasoft,密码为:123456
grant all on *.* to lavasoft@'localhost' identified by '123456' with grant option;
接下来就修改这个用户的密码为:leizhimin
update user set password = password('leizhimin') where user = 'lavasoft' and host='localhost';
flush privileges;
说明一点,最好用grant的方式创建mysql用户,尤其对mysql DBA来说,创建用户的同时要指定用户权限,养成好习惯很重要的。
这个修改方法实际上用的是mysql函数来进行的,还有更多的方法,我就不一一介绍了。
还要注意一点就是在修改密码等操作的时候,mysql不允许为表指定别名,但是初次在外却没有这个限制。
8、创建数据库
实际上mysql数据库中除了mysql数据库外,还有一个空的数据库test,供用户测试使用。
现在继续创建一个数据库testdb,并执行一系列sql语句看看mysql数据库的基本操作。
查看数据库
show databases;
查看数据库字符集
show variables like 'char%';
创建数据库testdb:
create database testdb;
预防性创建数据库:
create database if not testdb
使用sql文件创建库/表:
mysql>source D:\test.sql 或是 mysql> \. D:\test.sql
创建表:
use testdb;
create table table1(
username varchar(12),
password varchar(20));
预防性创建表aaa:
create table if not exists aaa(ss varchar(20));
查看表结构:
describe table1;
插入数据到表table1:
insert into table1(username,password) values
('leizhimin','lavasoft'),
('hellokitty','hahhahah');
commit;
查询表table1:
select * from table1;
更改数据:
update table1 set password='hehe' where username='hellokitty';
commit;
删除数据:
delete from table1 where username='hellokitty';
commit;
给表添加一列:
alter table table1 add column(
sex varchar(2) comment '性别',
age date not null comment '年龄'
);
commit;
从查询创建一个表table1:
create table tmp as
select * from table1;
删除表table1:
drop table if exists table1;
drop table if exists tmp;
9、备份数据库testdb
mysqldump -h 192.168.3.143 -u root -pleizhimin -x --default-character-set=gbk >C:\testdb.sql
10、删除数据库testdb
drop database testdb;
11、恢复testdb数据库
首先先建立testdb数据库,然后用下面命令进行本地恢复:
mysql -u root -pleizhimin testdb <C:\testdb.sql
12、删除mysql服务
假如你厌倦mysql了,你需要卸载,那么你只需要这么做
停止mysql服务
net stop mysql5
删除mysql服务
mysqld -remove mysql5
然后删除msyql的安装文件夹,不留任何痕迹。
MySQL服务器既可以做为前台服务程运行,也可以做为后台服务运行。在MySQL安装目录的bin目录下提供了以下MySQL服务程序:
mysqld.exe:最基本的MySQL服务器程序。
mysqld-nt.exe:Windows NT/2000/XP平台的优化版本,支持命名管道。
13. mysql数据库引擎(表类型)的设置
查看当前数据库支持的引擎命令: show engines;
其中, support列值为default的, 则为数据库当前的默认引擎.
(1)查看表结构: desc[ribe] tableName;
(2)查看建表语句: show create table tableName;
(3)查看表的状态: show table status like 'tableName'\G;
当使用(2)(3)命令时, 可以在结果中查看到表所使用的存储引擎类型.
在建表时指定表的存储引擎:
create table tableName(...) engine=engineName
修改表的存储引擎:
alter table tableName engine=engineName
表引擎区别:
![](https://i-blog.csdnimg.cn/blog_migrate/c326b556467e4f236e6fa415a43f40f0.png)
表引擎的适用环境:
MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一
InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。
Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。
Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。