MySQL重新初始化安装数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
 删除./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
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
7天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
37 2
|
4天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
14 0
|
7天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
29 4
|
20小时前
|
关系型数据库 MySQL 数据安全/隐私保护
安装mysql和远程连接
安装mysql和远程连接
6 0
|
1天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
12 2
|
2天前
|
关系型数据库 MySQL Windows
windows安装MySQL5.7教程
windows安装MySQL5.7教程
9 0
|
8天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
8天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
9天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
22 0