mysql免安装版配置和一些常见问题

博客原文点我

今天在Windows Server 2003下安装mysql,遇到不少问题。之前在另外两台服务器安装的时候也遇到了几个问题,最后找到不少文章解决了,记录一下。

所有版本都是免安装的32和64一样配置,另外几个问题下面有写到。

mysql5.5.58

1、下载解压

首先从官网下载安装包,下载连接:http://dev.mysql.com/downloads/mysql/5.1.html#downloads

由于最新的版本5.7.20和5.6.38下载解压之后都没有my-small.ini配置文件,因此下载的是5.5.58-win64版本。解压到要安装的盘,我放的是C:\Program Files (x86)。

2、配置环境变量

右击“我的电脑”--属性--高级系统设置--环境变量--系统变量

新建环境变量:变量名 MYSQL_HOME,变量值C:\Program Files (x86)\mysql-5.5.58-winx64;(解压后文件夹的路径)

在系统变量中找到path--编辑--在最后面加上 ;%MYSQL_HOME%/bin ;注意前面一定要加分号,后面最好不要加分号,不确定加了分号之后对不对

3、配置my-small.ini文件

在安装文件夹下找到 my-small.ini 配置文件, 打开进行编辑, 在 [mysqld] 下添加两行:

basedir = C:\Program Files (x86)\mysql-5.5.58-winx64

datadir = C:\Program Files (x86)\mysql-5.5.58-winx64\data

port = 3306

且在[Client]和 [mysqld] 下均添加一行: default-character-set = utf8

修改之后的文件内容如下图所示

4、安装

开始---搜索栏中输入cmd----enter,用管理员权限打开系统命令窗口,

输入:mysqld --install

提示service successfully installed安装成功;

5、启动mysql

启动:net  start  mysql

停止:net  stop  mysql

启动:net  start  mysql,出现系统错误2,系统找不到指定文件

这里是最需要注意的地方,在安装mysql服务时,一定要切换到mysql安装目录的bin目录下,不管你是否配置环境变量,否则在安装完后启动服务还是会报上面的错误。

切换到bin目录后,先删除前面安装的mysql服务(删除服务不一定要到bin目录),再重新在bin目录下安装mysql服务,然后启动:

mysql5.5.57

以下的步骤作为基本的步骤,能够确保你能运行一个基本的mysql:

1、将mysql-5.5.57-win32解压到C盘根目录下,更改文件夹名称为mysql-5.5.57;

2、在C盘根目录下建立一个文件夹mysqldb,内含1个文件夹data;

3、在C:\mysql-5.5.57文件夹下,新建一个my.ini文件(ANSI格式),主要配置内容如下:

[mysqld]

port=3306

character_set_server=utf8

basedir=C:\\mysql-5.5.57

datadir=C:\\mysqldb\\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]

port=3306

default-character-set=utf8

[mysql]

default-character-set=utf8

4、将C:\mysql-5.5.57\data文件夹下的所有文件复制到C:\mysqldb\data文件夹下;

5、cmd控制台cd到C:\mysql-5.5.57\bin目录内,执行下面的命令:

mysqld --install

以上命令回车后正常的结果是:Servicesuccessfully installed

6、再输入下面的命令:

mysqld --console

以上命令会导致命令等待(不会退出:https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_console)

7、ctrl+C后,再输入下面的命令:

net start mysql

以上命令回车后正常的结果是:MySQL服务正在启动\n MySQL服务已经启动成功。

8、系统环境变量的配置。继续输入命令:

sysdm.cpl

以上打开“系统属性”对话框,切换到“高级”|“环境变量”内;

9、对Path环境变量添加;C:\mysql-5.5.57\bin;

10、输入mysql -hlocalhost -uroot -p,默认的密码为空;

11、进行其他的操作。比如首先做的第一件事是修改密码:

>use mysql;

>update user set password=password(‘root’)where user=’root’;

>flush privileges;

*停止mysql服务的命令是net stop mysql;

*删除mysql服务的命令是mysqld --remove;

mysql5.7

1、解压下载的文件、解压后的目录(data目录和my.ini是后来创建的)

image.png

2、添加环境变量(能安装mysql的人应该都知道如何配置环境变量)

image.png

3、新建my.ini文件(该文件是mysql启动时依赖的配置文件,解压后的文件中竟然没有一个默认的配置,也是醉了)

image.png

4、新建数据存储目录(即第3步中,datadir指定的目录)

image.png

5、启动控制台(必须以管理员权限启动,命令提示符),进入到mysql的解压目录

image.png

6、装载mysql服务(由于免安装版不会自动装载mysql服务,必须手动装载)

mysqld --install

image.png

7、初始化数据库(免安装版中不会自动创建数据库,需要手动创建)

mysqld --initialize-insecure --user=mysql;

image.png

8、启动mysql服务(由于my.ini中制定了启动的参数,本次启动为忽略密码的方式,此时通过navicate连接本地数据库会成功登录,并且mysql为名的数据库已经创建成功)

net start mysql

image.png

image.png

9、登录数据库,并修改密码(由于本次启动为忽略密码,提示输入密码时直接回车就可以登录)

mysql –u root –p

update mysql.user set authentication_string=password('123456789') where user='root' and Host = 'localhost';

10、将mysql服务停掉,修改my.ini中的配置,修改为密码验证模式之后再次启动mysql,以后就可以正常使用mysql了

net stop mysql

注:本文大部分内容都是引用的,原文中第7和第8两步是颠倒的,亲测发现颠倒之后,在初始化数据库的时候会提示错误。

image.png

分析之后,讲服务停掉,并删除data下的文件。先初始化数据库,再启动服务,可以保证数据库初始化成功,并且服务正常启动。

Skip-External-Locking参数介绍

MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参数,即跳过外部锁定。根据MySQL开发网站的官方解释,External-locking用于多进程条件下为MyISAM数据表进行锁定

如果你有多台服务器使用同一个数据库目录(不建议),那么每台服务器都必须开启external locking;

参数解释

当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定。由于服务器访问数据表时经常需要等待解锁,因此在单服务器环境下external locking会让MySQL性能下降。所以在很多Linux发行版的源中,MySQL配置文件中默认使用了skip-external-locking来避免external locking。
当使用了skip-external-locking后,为了使用MyISAMChk检查数据库或者修复、优化表,你必须保证在此过程中MySQL服务器没有使用需要操作的表。如果没有停止服务器,也至少需要先运行


代码如下:

mysqladmin flush-tables

命令,否则数据表可能出现异常。
参数使用说明
如果是多服务器环境,希望打开external locking特征,则注释掉这一行即可


代码如下:

# skip-external-locking

如果是单服务器环境,则将其禁用即可,使用如下语句


代码如下:

skip-external-locking

注意事项
在老版本的MySQL中,此参数的写法为:


代码如下:

skip-locking

如果在新版本MySQL配置中依然使用此写法,则可能出现:
[Warning] ‘–skip-locking' is deprecated and will be removed in a future release. Please use ‘–skip-external-locking' instead.错误。

navicat连接数据库1045错误

1045    Access denied for user 'root'@'localhost' (using password:YES)

这个意思是说:用户“root”@本地主机的访问被拒绝

这种问题的本质是用户密码出现错误。

解决经验:

1.找到MySQL安装路径下的my.ini文件,用记事本的方式打开;

2.打开后,找到mysqld这个位置,这个文件的内容中有多个mysqld,注意看箭头所指位置

3.在 [mysqld] 底下添加语句:skip-grant-tables,添加完毕后保存。如果提示不让修改这个文件,则可将它复制到桌面,再用记事本打开它,添加完毕后,将桌面上的文件复制到原来的地方,赋值时选择替换目标文件;

好学的你肯定也想知道这个skip-grant-tables是什么意思,如下介绍:

skip-grant-tables作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库。

也就是说,启用这个参数之后,数据库的安全性会降低。

4.WIN+R —>cmd—>mysql -u root -p,这个命令是连接数据库服务器的命令;遇到Enter  passward:直接回车;

5.继续执行如下操作:

mysql>use mysql          //使用这个数据库

mysql>uodate user set passward=passward("123456") whrer user="root";   //修改数据库的密码

mysql>flush privileges;      //刷新数据库

这要步骤已经完成,我们来看看修改后的用户和密码:

到这里修改密码的工作已经完成。接下来要将在my.ini中添加的语句删掉。删掉之后再重启服务器,在测试链接,如果没有错误,一切OK;如果删掉语句,重启服务器之后任然有1045错误,那么,还是在my.ini原来删掉这条语句的位置中添加这条语句:skip-grant-tables,再重启服务器,再测试,一切OK。

mysql 在Windows2003安装,系统无法执行指定程序

问题出现:

后来各种百度谷歌。。。然后学会看系统日志了,计算机管理-事件查看器-系统。。。

发现了错误

还是想问这是啥???????

事件ID为32的描述是这样的:找不到附属汇编 Microsoft.VC90.CRT,上一个错误是 参照的汇编没有安装在系统上。
事件ID为59的描述是这样的:Resolve Partial Assembly 为 Microsoft.VC90.CRT 失败。 参考错误消息: 参照的汇编没有安装在系统上。
另一个事件ID为59的描述是:Generate Activation Context 为 E:\***\php.exe 失败。 参考错误消息: 参照的汇编没有安装在系统上。

然后借用一位大哥的博客:

http://www.deepseath.com/?p=858

下载安装地址:http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe

下载安装一下就ok了:

————————————————

以上参考CSDN和博客园整理而来,后面遇到就不用遍地找了

一个java小菜鸡的进阶之路,我的个人博客:http://www.zjhuiwan.cn 欢迎访问!
原文地址:https://www.cnblogs.com/sunonzj/p/12028813.html