作者: 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 表引擎区别:
表引擎的适用环境: MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一 InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。 Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。 Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。