MySQL5压缩版安装配置

来源:互联网 发布:南方cass软件 编辑:程序博客网 时间:2024/05/31 04:03
说明:本文针对mysql-noinstall版本,也就是解压缩版的安装配置应用做了个总结,这些操作都是平时很常用的操作。文章中不对mysql的可执行文件安装版做介绍了,可执行安装版有很多的弊端,我也不一一说了。总之,我喜欢绿色环保的,包括eclipse、tomcat、jboss、apache也是,即使操作系统重装了,这些软件也不需要重装,可谓一劳永逸!
 
环境:
Windows 2000/XP/2003
mysql-noinstall-5.5.10-win32.zip
 
一、下载MySQL

http://www.mysql.com/downloads
 
二、安装过程
 
1、解压缩mysql-noinstall-5.0.37-win.zip到一个目录,假如解压缩到E:\myserver目录。
 
2、编写mysql的运行配置文件my.ini
my.ini
-----------------------------
[WinMySQLAdmin]
# 指定mysql服务启动启动的文件
Server=E:\\myserver\\mysql-5.0.37-win32\\bin\\mysqld-nt.exe
 
[mysqld]
# 设置mysql的安装目录
basedir=E:\\myserver\\mysql-5.0.37-win32
# 设置mysql数据库的数据的存放目录,必须是data,或者是
\\xxx\data
datadir=E:\\myserver\\mysql-5.0.37-win32\\data
# 设置mysql服务器的字符集
default-character-set=utf8
 
[client]
# 设置mysql客户端的字符集
default-character-set=utf8
-----------------------------
 
如果你不想手写my.ini,也可以直接修改MySQL下面自带的ini文件。
修改D:\mysql-5.0.37-win32\my-small.ini文件内容,添加红色内容
     
[client]
#password = your_password
port  = 3306
socket  = /tmp/mysql.sock
default-character-set=utf8
 
[mysqld]
port  = 3306
socket  = /tmp/mysql.sock
default-character-set=gbk
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
 
修改完成后保存即可。
 
3、安装mysql服务
打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:MYSQL_HOME,变量值为你的mysql根目录,如:C:\mysql-5.5.10-win32
然后在系统变量Path中添加:;%MYSQL_HOME%\bin
在根目录下面有几个已经写好的"my-"开头的ini文件,选一个适合你的,如:my-small.ini。复制一份,将文件名修改为my.ini,添加以下内容:
打开命令提示符,进入%MYSQL_HOME%/bin目录,执行命令:mysqld -install将mysql安装到windows的服务。执行成功后会提示:C:\mysql-5.5.10-win32\bin>Service successfully installed.
如果想要卸载服务执行命令:mysqld -remove
 
4、启动mysql数据库
然后在命令提示符下执行:net start mysql就能启动mysql了,停止服务输入命令:net stop mysql。如果想设置mysql是否自动启动,可以在开始菜单->运行中输入service.msc打开服务管理进行设置。
 
5、(本地)登录mysql数据库
第一次登录的时候输入:

C:\Users\Administrator>mysql -u root

修改密码:

mysql> update mysql.user set password=PASSWORD('root') where User='root'
mysql> flush privileges


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后也可以直接写上密码,这样就不再需要输入密码了。


不过我在安装过程中还是出了点小问题,启动mysql的时候报错:

系统出错。

发生系统错误 1067。

进程意外终止。


打开%MYSQL_HOME%/data目录下的用户名.err文件,mysql的错误日志就记录在这个文件中。在里面发现这样一句话:

110327  0:12:02 [ERROR] MySQL: unknown variable 'default-character-set=utf8'

感觉很奇怪,以前一直都这样安装的。最后在mysql的官网上找到一篇中国DBA的求助信息,原来这是新版本的一个bug,不支持在my.ini中直接设置字符集为utf8。解决办法是:在default-character-set=utf8前面加上loose-即:

[mysqld]  #设置字符集为utf8  loose-default-character-set = utf8    [client]  #设置客户端字符集  loose-default-character-set = utf8  


虽然使用上面的方式加入loose-以后,mysql启动不再报错了。但是在插入数据时依然出现了乱码问题,给我造成了不小的麻烦。
mysql> show variables like '%char%';
通过以上命令查看字符集编码,得到如下结果:
+--------------------------+---------------------------------------+| Variable_name            | Value                                 |+--------------------------+---------------------------------------+| character_set_client     | utf8                                  || character_set_connection | utf8                                  || character_set_database   | latin1                                || character_set_filesystem | binary                                || character_set_results    | utf8                                  || character_set_server     | latin1                                || character_set_system     | utf8                                  || character_sets_dir       | C:\mysql-5.5.10-win32\share\charsets\ |+--------------------------+---------------------------------------+


可以看出character_set_database ,character_set_server 的编码还是默认的latin1。

在[mysqld]配置选项下添加character-set-server = utf8,重启服务进入mysql再次查看:
+--------------------------+---------------------------------------+| Variable_name            | Value                                 |+--------------------------+---------------------------------------+| character_set_client     | utf8                                  || character_set_connection | utf8                                  || character_set_database   | utf8                                  || character_set_filesystem | binary                                || character_set_results    | utf8                                  || character_set_server     | utf8                                  || character_set_system     | utf8                                  || character_sets_dir       | C:\mysql-5.5.10-win32\share\charsets\ |+--------------------------+---------------------------------------+



问题完美解决


 
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。
 
然后,删除用户的命令:
use 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数据库的基本操作。
 
创建数据库testdb:
create database testdb;
 
预防性创建数据库:
create database if not testdb
 
创建表:
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服务
sc delete mysql5

然后删除msyql的安装文件夹,不留任何痕迹。
 
呵呵,现在看来还是oninstall(非安装解压缩)版的mysql好,绿色环保。
好了,不说了,相信你已经掌握mysql的基本操作了。