删除./mysql/var下的所有数据后,怎么重新安装初始数据库?
(1)进入./mysql/bin目录下,执行脚本./mysql_install_db;
(2)执行完(1)后,此时会在./mysql/var目录下创建两个目录文件mysql、test;
(3)修改mysql、test两个目录及目录下所有文件的权限:chown mysql:mysql -R mysql test,注意这里一定要加上-R参数,否则启动会报错;
(4)进入./mysql/bin启动:./mysqld_safe --user=mysql &
该操作流程中出现过的问题及原因分析:
(1)执行./mysql_install_db报错
Installing MySQL system tables...
100309 17:49:10 [ERROR] /usr/local/mysql/libexec/mysqld: unknown option '--innodb_file_per_table'
100309 17:49:10 [ERROR] Aborting
错误原因:配置文件/etc/my.cnf中添加了参数innodb_file_per_table,而此参数mysql初始安装还不支持,所以报错。
解决方法:将其从配置文件中屏蔽掉即可。
(2)执行./mysql_install_db成功后,启动时报错
100309 17:51:58 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
^G/usr/local/mysql/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100309 17:51:58 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100309 17:51:58 [ERROR] /usr/local/mysql/libexec/mysqld: unknown option '--innodb_file_per_table'
100309 17:51:58 [ERROR] Aborting
错误原因:使用perror 13,打印出的错误信息为:OS error code 13: Permission denied。
解决方法:查看安装上的mysql文件权限均为root权限,执行./mysqld_safe --user=mysql &启动命令,显然mysql用户没有权限去读取./mysql/plugin.frm文件,所以要对已经安装上的所有文件权限做调整:chown mysql:mysql -R mysql test.(注意这里一定要加上-R参数,否则目录内的文件权限没有修改,再次启动还会报错的)
(3)启动报错
100309 17:59:33 mysqld_safe mysqld from pid file /usr/local/mysql/var/localhost.localdomain.pid ended
100309 17:59:53 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
100309 17:59:53 [ERROR] Unknown/unsupported table type: innodb
100309 17:59:53 [ERROR] Aborting
错误原因:错误很明显,在当前的数据库中还不支持innodb引擎(我在配置文件中添加了参数--default-storage- engine=innodb)。造成这个问题的主要原因是我在最初编译MySQL数据库时没有将innodb添加进去,所以这里找不到该引擎。
解决方法:先将配置文件中的参数--default-storage-engine参数注释掉,正常启动并登入后执行插入引擎的命令:install plugin innodb soname 'ha_innodb.so';(uninstall plugin innodb)
(4)uninstall plugin innodb后给出warning:Plugin is busy and will be uninstalled on shutdown
在热拔出innodb引擎时 ,mysql会去检查该引擎是否处于使用状态。因为我在存储过程中添加了参数default-storage-engine=innodb,所以给出上述提示。在exit登出系统再登入,执行show engines命令,此时报出如下错误:
mysql> show engines;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> 100309 18:14:21 mysqld_safe Number of processes running now: 0
100309 18:14:21 mysqld_safe mysqld restarted
100309 18:14:21 mysqld_safe mysqld from pid file /usr/local/mysql/var/localhost.localdomain.pid ended
查看错误日志:
00309 18:28:03 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.
key_buffer_size=16777216
read_buffer_size=258048
max_used_connections=1
max_threads=151
threads_connected=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 132701 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
thd: 0x884b968
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0xb3f9f3a4 thread_stack 0x30000
/usr/local/mysql/libexec/mysqld(my_print_stacktrace+0x22) [0x838f1f2]
/usr/local/mysql/libexec/mysqld(handle_segfault+0x37f) [0x81af04f]
[0xb7f23420]
/usr/local/mysql/libexec/mysqld [0x82c49a7]
/usr/local/mysql/libexec/mysqld(plugin_foreach_with_mask(THD*, char (*)(THD*, st_plugin_int*, void*), int, unsigned int, void*)+0xd9) [0x8317a39]
/usr/local/mysql/libexec/mysqld(fill_schema_engines(THD*, TABLE_LIST*, Item*)+0x33) [0x82b8873]
/usr/local/mysql/libexec/mysqld(get_schema_tables_result(JOIN*, enum_schema_table_state)+0x1ce) [0x82b8a8e]
/usr/local/mysql/libexec/mysqld(JOIN::exec()+0x455) [0x822fc35]
/usr/local/mysql/libexec/mysqld(mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*)+0x158) [0x82320d8]
/usr/local/mysql/libexec/mysqld(handle_select(THD*, st_lex*, select_result*, unsigned long)+0x15d) [0x8232a3d]
/usr/local/mysql/libexec/mysqld [0x81ba660]
/usr/local/mysql/libexec/mysqld(mysql_execute_command(THD*)+0x5d40) [0x81c3fd0]
/usr/local/mysql/libexec/mysqld(mysql_parse(THD*, char const*, unsigned int, char const**)+0x208) [0x81c8048]
/usr/local/mysql/libexec/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0xd1b) [0x81c8d6b]
/usr/local/mysql/libexec/mysqld(do_command(THD*)+0xe1) [0x81c9781]
/usr/local/mysql/libexec/mysqld(handle_one_connection+0x5be) [0x81b7cce]
/lib/libpthread.so.0 [0xb7ef93cb]
/lib/libc.so.6(clone+0x5e) [0xb7cf0e8e]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x88916d0 = show engines
thd->thread_id=2
thd->killed=NOT_KILLED
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
100309 18:28:03 mysqld_safe Number of processes running now: 0
100309 18:28:03 mysqld_safe mysqld restarted
100309 18:28:04 [ERROR] Unknown/unsupported table type: innodb
100309 18:28:04 [ERROR] Aborting
可以看到这里show engines成为了一个中断信号11,导致Mysqld重启,又由于my.cnf参数问题,最终导致启动失败。(信号11的出现很有可能是配置文件参数错误,经网络搜索好像说明这也是mysql自身的bug)



本文转自 yubowei 51CTO博客,原文链接:http://blog.51cto.com/samyubw/282973

MySQL重新初始化安装数据库的更多相关文章

  1. 【linux】【mysql】CentOS7安装mysql5.6.26

    http://www.cnblogs.com/dreamhome/p/4716425.html     linux系统CentOS7到http://mirrors.sohu.com/mysql/下载想 ...

  2. 源码安装mysql 5.7.19数据库

    1.系统要求yum install -y cmake make gcc gcc-c++ bison  ncurses ncurses-devel 2.创建用户和组groupadd mysql & ...

  3. windows 系统如何安装 mysql 8.0.15 数据库?

    windows 系统如何安装 mysql 8.0.15 数据库? 1. 下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0. ...

  4. mysql数据库补充知识1 安装数据库破解数据库密码已经创建用户

    一.安装MYSQL数据库 1.yum安装 #二进制rpm包安装 yum -y install mysql-server mysql 2.源码安装   1.解压tar包 cd /software tar ...

  5. 阿里云安装mysql,初始化密码修改

    阿里云服务器,centos7, rpm包安装MySQL,初始化了个奇葩密码 登陆不上, 修改配置文件/etc/my.cnf,在[mysqld]下面添加一行代码:skip-grant-tables se ...

  6. MySQL 8.0安装以及初始化错误解决方法

    MySQL 8.0 安装配置及错误排查 官网下载 CentOS7环境下的具体安装步骤 初始化MySQL发生错误的解决方法 忘记数据库root密码 官网下载 mysql官网下载链接:https://de ...

  7. 在Fedora 20 上安装Mysql并初始化root密码

    [root@localhost ~]# yum -y install community-mysql-server #安装数据库 已加载插件:langpacks, refresh-packagekit ...

  8. Linux下安装Python3的django并配置mysql作为django默认数据库(转载)

    我的操作系统为centos6.5 1  首先选择django要使用什么数据库.django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包 ...

  9. [mysql,2018-02-28] bat安装、启动mysql,并创建数据库、表

    @echo off f: cd F:\mysql-win32 @echo off&setlocal enabledelayedexpansion cd bin echo ###### 停止当前 ...

随机推荐

  1. find的基本查询命令《二》

    Linux find命令详解 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你 ...

  2. Shell:Day05.笔记

    交互输入与for语句 1.交互输入 read  Python中用input()函数,进行输入:  read命令同时可以定义多个变量值:而输入的内容默认以空格为分隔符,将值输入到对应的变量中: 如果默认 ...

  3. Java工程中如何读取配置文件中参数信息

    Java中读取配置文件中参数: 方法一:通过JDK中Properties来实现对配置文件的读取. Properties主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很 ...

  4. Python zipfile模块学习

    转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...

  5. AJ学IOS(26)UI之iOS抽屉效果小Demo

    AJ分享,必须精品 先看效果 实现过程 第一步,把三个view设置好,还有颜色 #warning 第一步 - (void)addChildView { // left UIView *leftView ...

  6. 【python系统学习14】类的继承与创新

    目录: 目录: [toc] 类的继承 子类和父类 继承的写法 继承示例 父类可以被无限个子类所继承 子类实例可调用父类属性和方法 类的始祖(根类) 根类 - object 实例归属判断 - isins ...

  7. 第一节:python基础

    2020-03-29 python基础: 多种python版本,直接编码让c解释的是cpython,pypy是最快的python 编码:ascll码只能表示256种无法表示中文,utf8个根据字符长短 ...

  8. Cucumber(2)——目录结构以及基本语法

    目录 回顾 HelloWorld 扩展 回顾 在上一节中,我大致的介绍了一下cucumber的特点,以及基于ruby和JavaScript下关于cucumber环境的配置,如果你还没有进行相关的了解或 ...

  9. vue axios post请求下载文件,后台springmvc完整代码

     注意请求时要设置responseType,不加会中文乱码,被这个坑困扰了大半天... axios post请求:     download(index,row){         var ts =  ...

  10. 8. input限制手机输入

    1. 只能输入数字: <input id="num" type="number" value="0" onkeyup="va ...