安装完毕MYSQL服务在初始化数据库的时候报错

[root@mysql mysql]# /application/mysql/bin/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysqlFATAL ERROR: Could not find errmsg.sysThe following directories were searched:    /application/mysql//share/english    /application/mysql//share/mysql/englishIf you compiled from source, you need to run 'make install' tocopy the software into the correct location ready for operation.If you are using a binary release, you must either be at the toplevel of the extracted archive, or pass the --basedir optionpointing to that location.

打算重新编译重新 ./configure是正常的,但是一到make的时候就报错,如下

make报错

mysql.cc:1040: error: redefinition of ‘struct _hist_entry’../include/readline/readline.h:55: error: previous definition of ‘struct _hist_entry’mysql.cc:1043: error: invalid type in declaration before ‘;’ tokenmysql.cc:1043: error: conflicting declaration ‘typedef int HIST_ENTRY’../include/readline/readline.h:58: error: ‘HIST_ENTRY’ has a previous declaration as ‘typedef struct _hist_entry HIST_ENTRY’mysql.cc: In function ‘void initialize_readline(char*)’:mysql.cc:2455: error: ‘rl_completion_func_t’ was not declared in this scopemysql.cc:2455: error: expected primary-expression before ‘)’ tokenmysql.cc:2456: error: invalid conversion from ‘char* (*)(const char*, int)’ to ‘int (*)(const char*, int)’mysql.cc:2458: error: invalid conversion from ‘int (*)(int, int)’ to ‘int (*)(const char*, int)’mysql.cc:2458: error:   initializing argument 2 of ‘int rl_add_defun(const char*, int (*)(const char*, int), int)’make[2]: *** [mysql.o] Error 1make[2]: Leaving directory `/home/admin/tools/mysql-5.1.62/client'make[1]: *** [all] Error 2make[1]: Leaving directory `/home/admin/tools/mysql-5.1.62/client'make: *** [all-recursive] Error 1

经过不懈奋斗,发现是由于第一次安装的时候,./configure make 之后忘记make install。又重新编译了 

解决方法如下:

rm -fr ` find / -name mysql`   ###删除所有安装的内容

rm -fr /application/mysql*    ###删除安装路径的mysql

后重启linux 重新编译安装

安装成功,初始化数据库后的输出显示

[root@mysql mysql]#  /application/mysql/bin/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysqlInstalling MySQL system tables...170222  8:50:13 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.OKFilling help tables...170222  8:50:13 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !To do so, start the server, then issue the following commands:/application/mysql/bin/mysqladmin -u root password 'new-password'/application/mysql/bin/mysqladmin -u root -h mysql password 'new-password'Alternatively you can run:/application/mysql/bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default.  This isstrongly recommended for production servers.See the manual for more instructions.You can start the MySQL daemon with:cd /application/mysql ; /application/mysql/bin/mysqld_safe &You can test the MySQL daemon with mysql-test-run.plcd /application/mysql/mysql-test ; perl mysql-test-run.plPlease report any problems with the /application/mysql/scripts/mysqlbug script!

配置mysql默认配置和init.d启动

cp support-files/my-small.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/chmod +x /etc/init.d/mysql.server mv /etc/init.d/mysql.server /etc/init.d/mysqld/etc/init.d/mysqld start

最后配置PATH

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile