1、安装
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下便可。
2、启动
要想启动服务器,有两种方式:
一、输入命令:
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。
二、以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命令忽略大小写。
3、关闭
下述命令能够中止MySQL服务器:
C:\> D:\javatool\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
4、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 shutdownEnter password: (enter root password here)