mysql5.1非安装zip文件版安装指南
原文链接: http://blog.csdn.net/yippeelyl/article/details/39185539
1.准备工作
下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d:\\ mysql-noinstall-5.1.53-win32。这个就是mysql的根目录了。
2.配置
在根目录下有几个文件如下:
- my-small.ini (这是针对一个小内存(〈= 64MB)的系统,MySQL 只会被时不时地用一下,很重要的是 mysqld 守护进程不会使用很多资源。)
- my-medium.ini (这是针对一个小内存(32M- 64M)系统的,MySQL 扮演了一个比较重要的部分,或者当系统达到 128M 后 MySQL 被用来与其它程序(如一个 Web 服务器)一起使用。)
- my-large.ini (这是针对一个内存 = 512M 的大系统,系统主要运行 MySQL)
- my-huge.ini (这是针对一个内存为 1G – 2G 的大系统,系统主要运行 MySQL)
- my-innodb-heavy-4G.ini (这是一个针对 4G 内存系统(主要运行只有 InnoDB 表的 MySQL 并使用几个连接数执行复杂的查询)的 MySQL 配置文件例子)
对应自己的配置,自己选择下,其他的就删除吧。然后重命名成my.ini。编辑my.ini,在[mysqld]节点下增加如下几句:
basedir= D:/mysql-noinstall-5.1.53-win32 #根目录 datadir= D:/mysql-noinstall-5.1.53-win32/data #数据文件存放目录
3.安装服务
cmd:进入mysql的根目录\bin:
mysqld --install MySQL
这样用默认的 MySQL 为名称添加了一个windows服务。要移除mysql服务:
mysqld –remove MySQL
设置服务为自动启动:
sc config MySQL start= auto
4.启动与关闭
cmd:
net start MySQL --启动 net stop MySQL --关闭
mysql启动后。在任务管理器当中可以看到mysqld.exe这个进程。说明mysql已经安装好了。并且已经成功的启动!
5.精简:
如果你觉得mysql目录过于庞大的话请看。根目录下可以只留下my.ini和bin,data,share目录,其余全部删除。bin目录下可以把.pdb的文件全部删除。
6.初始化数据库:
由于mysql默认的root的密码为空并且只能本机登录,做如下修改:
cmd:进入mysql的根目录\bin:
mysql -uroot
这时进入了mysql命令行界面,继续输入:
mysql< use mysql; mysql< delete from user; mysql< grant all on *.* to root@'%' identified by "root" with grant option; mysql< flush privileges; mysql< quit;
这样就给root用户赋予了初始密码"root",并且可以不限制本机登录。
7.乱码问题:
修改my.ini文件,找到[mysqld],在下方加上:
character-set-server = utf8 #mysql5.5开始 default-character-set = utf8 #mysql5.5以前
找到[client],在下方加上:
default-character-set = utf8
-
mysql下载回来之后解压到D:/mysql-5.1.57-win32,把D:/mysql-5.1.57-win32/bin加入到系统环境变量 Path 中。
-
然后需要简单的配置mysql数据库,把my-small.ini改名为 my.ini (其他的几个文件也可以直接拿过来修改一下名字),编辑文件 my.ini,其内容完整如下
# Example MySQL config file for small systems.
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
basedir=D:/mysql-5.1.57-win32
datadir=D:/mysql-5.1.57-win32/data
default-storage-engine = MyISAM
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = 1
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C://mysql//data//
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C://mysql//data//
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
输入:mysqld.exe 就可以启动服务了
- cmd中关闭数据库
命令mysqladmin -u root shutdown
mysql5.1非安装zip文件版安装指南
一、安装
mysql的默认安装位置在C:/MySQL,这一点并不会因为你将文件放在哪个目录而改变,因为其选项文件是那样设置的,要想将mysql真正安装至
其他位置,需要调节服务器设定值。
档MySQL服务器在Windows中启动时,它从两个文件中寻找选项:Windows目录中的my.ini文件和C:\my.cnf 文件。Windows目录典型名称为C:\WINDOWS或C:\WINNT。可以使用下面的命令从WINDIR环境变量值确定自己的确切位置:
C:\> echo %WINDIR%
MySQL首先从my.ini文件中寻找选项,然后从my.cnf文件中寻找。
最好的选择是只用一个,比如my.ini,这样即使系统盘不是C盘也没问题。
[mysqld]
# set basedir to your installation path
basedir=D:/javatool/MySQL/MySQL Server 5.1
# set datadir to the location of your data directory
datadir=D:/javatool/MySQL/MySQL Server 5.1/data
这是我的安装目录,将以上内容保存成my.ini文件放入C:\windows下即可。
二、启动
要想启动服务器,有两种方式:
1、输入命令:
C:\> D:\javatool\MySQL\MySQL Server 5.1\bin\mysqld --console
假如不想每次都进入MySQL的bin目录,就将其加到path里面,方便一点。但是如果在同一个机器上运行多个MySQL服务器,就不要在Windows PATH中加入MySQL bin目录。
支持InnoDB的服务器启动时,你应当能看见下面的消息:
InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created
011024 10:58:25 InnoDB: Started
服务器完成启动序列后,你应当能看见下述内容,表示服务器准备好,可以进行客户端连接:
mysqld: ready for connections
Version: '5.1.2-alpha' socket: '' port: 3306
服务器继续向控制台写入诊断输出。你可以打开新的控制台窗口运行客户端程序。
如果省略--console选项,服务器向数据目录(默认为C:\Program Files\MySQL\MySQL Server 5.1\data)中的错误日志写入诊断输出。错误日志文件的扩展名为.err。
2、以Windows服务方式启动MySQL
建议将MySQL安装为Windows服务,当Windows启动、停止时,MySQL也自动启动、停止。还可以从命令行使用NET命令。
在Windows控制面板(Windows 2000,XP和Server 2003的管理工具下面)中可以看见Services工具(Windows Service Control Manager)。建议从命令行安装活卸载服务器时关闭Services工具。这样可以防止许多错误。
安装MySQL Windows服务之前,应当使用下面的命令先停止当前正运行的服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
注意:如果MySQL root用户账户有密码,你需要调用命令 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root -p shutdown并根据提示输入密码。
使用该命令安装服务器
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install
安装服务时,可以使用MySQL 5.1中的下面的参数:
· 可以直接在--install选项后面指定服务名。默认服务名是MySQL。
· 如果给出了服务名,后面可以跟一个选项。一般情况,应当为defaults-file="file_name",指定选项文件的名称,服务器启动时应当从中读取选项。
可以使用单个选项代替--defaults-file,但是不提倡这样做。--defaults-file更加灵活一些,因为你可以将多个服务器启动选项放入命名的选项文件中。
· 可以在服务名后面指定一个--local-service选项。这样服务器运行时使用LocalService Windows账户,只具有有限的系统权限。该账户只适用于Windows XP或更新版本。如果服务名后面同时跟有--defaults-file和--local-service,二者可以按任何顺序排放。
对于Windows MySQL服务器,根据下面规则确定服务器使用的服务名和选项文件:
· 如果在服务安装命令中,没有在--install选项后面指定了服务名或使用默认服务名(MySQL),服务器则使用MySQL服务名并从标准选项文件的[mysqld]组读取选项。
· 如果在服务安装命令中,在--install选项后面指定的服务名不是默认服务名(MySQL)。则从具有相同服务名的组中读取选项,并从标准选项文件读取选项。
服务器还从标准选项文件的[mysqld]组读取选项。你可以使用[mysqld]组中的选项用于所有MySQL 服务,还可以使用具有相同服务名的组,用于该服务名所对应的服务器。
· 如果在服务安装命令中,在服务名后面指定了--defaults-file选项,服务器只从命名文件的[mysqld]组中读取选项,忽略标准选项文件。对于更复杂的例子可以考虑使用命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install MySQL --defaults-file=C:\my-opts.cnf
该命令中,--install选项后面给出了默认服务名(MySQL)。如果未给出--defaults-file选项,该命令可以让服务器从标准选项文件的[mysqld]组中读数。由于提供了--defaults-file选项,服务器只从命名文件的[mysqld]组读取选项。
还可以在启动MySQL服务之前,在Windows Services工具中指定启动参数选项。
MySQL服务器安装为服务后,Windows启动时自动启动服务。还可以从Services工具直接启动服务,或使用命令NET START MySQL。NET命令忽略大小写。
三、关闭
下述命令可以停止MySQL服务器:
C:\> D:\javatool\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
四、mysql帐户安全
初始的mysql没有密码,出于安全,有必要为root用户设置密码。
要想为匿名账户指定密码,可以使用SET PASSWORD或UPDATE。在两种情况中,一定要使用PASSWORD()函数为密码加密。
在Windows中使用PASSWORD的方法:
shell> mysql -u root
mysql> SET PASSWORD FOR ' '@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR ' '@'%' = PASSWORD('newpwd');
在Unix中使用PASSWORD的方法:
shell> mysql -u root
mysql> SET PASSWORD FOR ' '@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR ' '@'host_name' = PASSWORD('newpwd');
为匿名账户指定密码的另一种方法是使用UPDATE直接修改用户表。用root连接服务器,运行UPDATE语句为相应user表记录的Password列指定一个值。在Windows和Unix中的过程是相同的。下面的UPDATE语句同时为两个匿名账户指定密码:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = '';
mysql> FLUSH PRIVILEGES;
在user表中直接使用UPDATE更新密码后,必须让服务器用FLUSH PRIVILEGES重新读授权表。否则,重新启动服务器前,不会使用更改。
如果你宁愿删除匿名账户,操作方法是:
shell> mysql -u root
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;
可以在Windows和Unix中使用DELETE语句。在Windows中,如果你只想删掉具有与root相同权限的匿名账户,方法为:
shell> mysql -u root
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
mysql> FLUSH PRIVILEGES;
该账户允许匿名访问,但是拥有全部的权限,因此删掉它可以提高安全。
可以用几种方法为root账户指定密码。以下介绍了三种方法:
· 使用SET PASSWORD语句
· 使用mysqladmin命令行客户端程序
· 使用UPDATE语句
要想使用SET PASSWORD指定密码,用root连接服务器并执行两个SET PASSWORD语句。一定要使用PASSWORD()函数来加密密码。
在Windows中的语句:
shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');
在Unix中的语句:
shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
用服务器主机名替换第二个SET PASSWORD语句中的host_name。这是你指定匿名账户密码的主机名。
要想使用mysqladmin为root账户指定密码,执行下面的命令:
shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
上述命令适用于Windows和Unix。用服务器主机名替换第二个命令中的host_name。不一定需要将密码用双引号引起来,但是你如果密码中包含空格或专用于命令解释的其它字符,则需要用双引号引起来。
你还可以使用UPDATE直接修改user表。下面的UPDATE语句可以同时为两个root账户指定密码:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
UPDATE语句适用于Windows和Unix。
设置完密码后,当你连接服务器时你必须提供相应密码。例如,如果你想要用mysqladmin 关闭服务器,可以使用下面的命令:
shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)