删除./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. 一个关于HttpClient的轮子

    由于本文较长,需要耐住性子阅读,另外本文中涉及到的知识点较多,想要深入学习某知识点可以参考其他博客或官网资料.本文也非源码分析文章,示例中的源码大多是伪代码和剪辑过的代码示例,由于该轮子为公司内部使用 ...

  2. Java通过Http请求服务器

    Java通过Http请求服务器图片输出.下载.转换 Java开发过程中总会遇到从服务器中请求文件(图片.text文档等).此处详情记录从服务器下载图片的方法,以及以多种方式输出. 1.整体流程: 建立 ...

  3. c#声明数组

    声明二维数组时候,出现报错: string[][] dataTable; dataTable = new string[rows][cols]; 无效的秩说明符: 应为","或&q ...

  4. 汇编刷题:根据公式 Z=(X+Y)*8-X)/4 计算Z的结果(本题将结果放在AL寄存器里)

    DATA SEGMENT X DB 10 Y DB 20 Z DB 00 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DAT ...

  5. 10.1 io流--ASCII码表

    day2.8中提到 /* * +: * 做加法运算 * * 字符参与加法运算,其实是拿字符在计算机中存储的数据值来参与运算的 * 'A' 65(B 66...) * 'a' 97(b 98...) * ...

  6. java京东自动登录

    大部分代码都是参考的这边,我只是在他的逻辑上实现了自动通过验证码,放上主逻辑的代码吧,图片识别我用的若快,可以去接其他平台 https://blog.csdn.net/u013232789/artic ...

  7. 小程序wepy2 模拟vant PasswordInput, NumberKeyboard 密码输入框控件

    vant weapp小程序端控件目前是没有PasswordInput,NumberKeyboard的.实现效果: 数字键盘组件代码(keyboard.wpy): <template> &l ...

  8. AJ学IOS(22)UI之UIApplicationDelegate和UIWindow

    AJ分享,必须精品 UIApplicationDelegate 每次新建完项目,都有个带有“AppDelegate”字眼的类,它就是UIApplication的代理 NYAppDelegate默认已经 ...

  9. java 第七周课后作业0417

    定义一个矩形类Rectangle:(知识点:对象的创建和使用)1 定义三个方法:getArea()求面积.getPer()求周长,showAll()分别在控制台输出长.宽.面积.周长.2 有2个属性: ...

  10. L25词嵌入进阶GloVe模型

    词嵌入进阶 在"Word2Vec的实现"一节中,我们在小规模数据集上训练了一个 Word2Vec 词嵌入模型,并通过词向量的余弦相似度搜索近义词.虽然 Word2Vec 已经能够成 ...