45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > 数据库 >

Win7系统下启动MySql报错mysql.plugin解决

电脑软硬件应用网 45IT.COM 时间:2012-09-28 18:20 作者:佚名

windows7 64位,安装mysql5.5.27_win64,自定义安装到D:/database/mysql,在初始化最后一步,写配置文件时总是“未响应”。结束进程,手工创建my.ini文件


[client]
port=3335


[mysql]
default-character-set=utf8

[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3335
basedir="D:/database/mysql/"
datadir="D:/database/data/"
character-set-server=utf8
default-storage-engine=INNODB

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100
query_cache_size=8M
table_cache=256
tmp_table_size=9M
thread_cache_size=8

myisam_max_sort_file_size=100G
myisam_sort_buffer_size=16M
key_buffer_size=9M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K

#*** INNODB Specific options ***
innodb_data_home_dir="D:/database/InnoDB/"
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=15M
innodb_log_file_size=10M
innodb_thread_concurrency=10

写好配置文件后,我在cmd下尝试mysqld直接启动,但总是失败,并在D:/database/data/中可以看到按时间做为文件名的错误日志,其中有两条

Table 'mysql.plugin' doesn't exist


...............................................

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

在网上搜索了很多解决方法,逐一尝试都没能解决我的问题,后来在看到另外一篇文章:

下面是文章内容:标题是:Windows环境下初始化mysql
 

Linux环境中,安装好mysql后,还不能直接启动服务,必须先对数据库进行初始化。初始化的工作主要包括:  

初始化日志、表空间等数据库必须的文件;

创建并初始化系统数据库(mysql)。

初始化完成后,启动mysqld守护进程,方可访问数据库。

在Windows的环境下,安装包内已经自带了一个初始化好的环境,安装后展开在mysql根目录的data子目录。所以并不需要手工进行初始化。但是某些情况下,也可能需要从零开始初始化数据库,比如:

数据文件被破坏,需要重建;

希望保留现有环境不动,建立一个新的环境;

希望建立一个干净的环境。

不幸的是,Linux环境下是利用mysql_install_db.sh脚本初始化数据库环境的;而在windows版中并没有提供相应的脚本。那么该怎么办呢?

经过对Linux环境下的mysql_install_db.sh的分析,发现初始化数据库的命令主要是以下几行:

mysql_install_db.sh

# Pipe mysql_system_tables.sql to "mysqld --bootstrap"

s_echo "Installing MySQL system tables..."

if { echo "use mysql;"; cat $create_system_tables $fill_system_tables; } | eval "$filter_cmd_line" | $mysqld_install_cmd_line > /dev/null

then

s_echo "OK"

s_echo "Filling help tables..."

# Pipe fill_help_tables.sql to "mysqld --bootstrap"

if { echo "use mysql;"; cat $fill_help_tables; } | $mysqld_install_cmd_line > /dev/null

then

s_echo "OK"

......

其中:

$create_system_tables、$fill_system_tables和$fill_help_tables分别是创建系统数据库、初始化系统数据库中的数据、和初始化帮助数据;

$filter_cmd_line是过滤掉主机名(用于交叉初始化非本机运行数据库环境的情况,可忽略);

$mysqld_install_cmd_line主要是"mysqld --bootstrap"命令;

分析清楚上述内容,就可以自己手工初始化数据库了。具体步骤如下:

设置mysql配置文件。主要是设置basedir(mysql的home目录,如:/opt/mysql-5.1.40)和datadir(数据库文件目录,如:/var/db/mysql)两个参数。

初始化数据库目录,检查/var/db/mysql和/var/db/mysql/mysql(系统数据库)目录是否存在,若不存在则手工创建之。

准备初始化数据库的sql脚本。将/opt/mysql-5.1.40/share目录下的mysql_system_tables.sql、 mysql_system_tables_data.sql和fill_help_tables.sql三个文件拷贝到/tmp目录下,并在每个文件的最开始插入“use mysql;”一行。

执行下列命令,初始化数据库:

/opt/mysql-5.1.40/bin/mysqld.exe --bootstrap --console < /tmp/mysql_system_tables.sql

/opt/mysql-5.1.40/bin/mysqld.exe --bootstrap --console < /tmp/mysql_system_tables_data.sql

/opt/mysql-5.1.40/bin/mysqld.exe --bootstrap --console < /tmp/fill_help_tables.sql

运行/opt/mysql-5.1.40/bin/mysqld.exe启动数据库服务(注意:停止数据库服务的命令是/opt/mysql-5.1.40/bin/mysqladmin.exe -uroot shutdown)。

运行/opt/mysql-5.1.40/bin/mysql.exe -uroot,访问数据库服务,验证数据库是否正常。

至此数据库已初始化完毕,可以正常访问了。

www.it165.net


这篇文章并没有直接解决这个问题,但给我带来了启发,我尝试着按这种方法初始化表,但提示我没有mysql表!!!

这篇文章中,明确的讲“....在每个文件的最开始插入“use mysql;”......"  我按照这个方法做了,但却提示没有mysql表!

我再次回到mysql的安装目录下仔细的看了一下,在安装目录下有一个data目录(D:/database/mysql/data),里面就有一个mysql文件夹,这个就是默认的数据库数据存储位置。既然我修改了数据存放位置,我直接将这个data文件下的所有文件拷贝到D:/database/data/下面是否可行?

于是我将mysql安装目录默认数据存放路径D:/database/mysql/data 文件夹下所有文件全部放入D:/database/data/,再次启动mysqld,成功了!

对mysql数据库实在是不了解呀,之前安装都非常顺利,第一次遇到这种问题,mark一下。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识