mysql_install_db这个脚本在windows下是有问题的!

Linux下,装完之后在script目录下有一个mysql_install_db.sh,windows下,如果从源代码安装,装完之后在script目录下有一个mysql_install_db.pl。首先我不明白为什么非要用bash和perl两种语言各写一遍,是为了防止某些Linux下没有装perl解释器吗?

最大的问题是mysql_install_db.pl是个半成品,bugs.mysql.com上面有很多关于它的BUG。

在Linux下,mysql_install_db.sh会执行3个脚本,fill_help_tables.sql,mysql_system_tables.sql和mysql_system_tables_data.sql。而在Windows下,十分可笑的事情是,它在perl里面定义了这三个变量,但是fill_system_tables这个变量后面没有被引用:

my $fill_help_tables = "$pkgdatadir/fill_help_tables.sql";

my $create_system_tables = "$pkgdatadir/mysql_system_tables.sql";

my $fill_system_tables = "$pkgdatadir/mysql_system_tables_data.sql";

它在执行完mysql_system_tables.sql就告诉我说能用了,然后我就去登录,死活进不去。我开debug,查日志,在sql/sql_acl.cc的acl_load函数中发现这些表都是空的。然后去查mysql_install_db.pl的代码,发现这个问题。我的mysql的版本号是5.5.9。我特意从网上重新下了一遍代码,发现还是如此。然后google之,发现别人也遇到这个问题了。然后我去bugs.mysql.com上提交了一个BUG,http://bugs.mysql.com/bug.php?id=60384 你说这算bug还算是feature request呢? 如果这玩意儿不能用,那你在手册里清楚的注出来啊,我去手工执行那些sql语句就行了啊,我就不至于费这么大周折才找到原因。

此博客中的热门博文

在windows下使用llvm+clang

少写代码,多读别人写的代码

tensorflow distributed runtime初窥