处理mysql启动报错Table 'mysql.plugin' doesn't exis

2015-10-23
本来今天工作会比较忙,可惜开发在配置云平台的时候居然出现了各种奇奇怪怪的问题,原来在测试环境好好的,就是配置到云平台后就出问题咯,明天周六了,搞到我要加班了,反正问题我不管了,快点搞好就行。在这空闲之余我搞起了mysql,这烦人的东西我以前在远光时候也玩过,不过他们是使用oracle的,mysql我只是玩玩而已,现在我却重新再弄弄这个东西。

我个人比较纠结,数据库啊或者中间介什么的我从来都不会在windows上安装,因为在linux上玩起来会很帅(曾经想把自已的个人电脑也换成linux,不过由于本人喜欢看电影,而且经常用BT下载,所以现在还用着windows),今天我从新再学习安装mysql,
由于忘了很久了,现在重新学起来有点麻烦,安装过程网上多的是,喜欢的话可以参考这个:
不过有一个我想说的时,必须要记住这个ftp地址,由于mysql官网我们国内都防问不到,所以可以在这里下载:

安装完成后,按照网上说启动mysql时却报了以下错误:
[root@localhost bin]# ./mysqld
2015-10-23 16:54:55 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-10-23 16:54:55 0 [Note] ./mysqld (mysqld 5.6.27) starting as process 31176 ...
2015-10-23 16:54:55 31176 [Warning] Can't create test file /data/mysql/localhost.lower-test
2015-10-23 16:54:55 31176 [Warning] Can't create test file /data/mysql/localhost.lower-test
./mysqld: Can't change dir to '/data/mysql/' (Errcode: 2 - No such file or directory)
2015-10-23 16:54:55 31176 [ERROR] Aborting

2015-10-23 16:54:55 31176 [Note] Binlog end
2015-10-23 16:54:55 31176 [Note] ./mysqld: Shutdown complete

网上的解决方法有很多,有些我试过不管用,但不能就说这些不管用的文章是乱写的,因为有些问题并不是由一个原因而引起的,不过可以试试,我对mysql了解不多,所以也不加以评论,我是使用以下方法解决的:
首先这个报错,很明显是由于找不到datadir目录/data/mysql/所引起的,其实我安装mysql时候是指定了datadir=/usr/mysqldata,于是我在usr创建了mysqldata目录:

[root@localhost usr]# mkdir -p /usr/mysqldata/
[root@localhost usr]# ls
[root@localhost usr]# chown -R mysql mysqldata
[root@localhost usr]# chgrp -R mysql mysqldata

然后再启动,不过仍然报错:

[root@localhost bin]# ./mysqld
2015-10-23 17:06:33 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-10-23 17:06:33 0 [Note] ./mysqld (mysqld 5.6.27) starting as process 31312 ...
2015-10-23 17:06:33 31312 [Note] Plugin 'FEDERATED' is disabled.
./mysqld: Table 'mysql.plugin' doesn't exist
2015-10-23 17:06:33 31312 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
2015-10-23 17:06:33 31312 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-10-23 17:06:33 31312 [Note] InnoDB: The InnoDB memory heap is disabled
2015-10-23 17:06:33 31312 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-10-23 17:06:33 31312 [Note] InnoDB: Memory barrier is not used
2015-10-23 17:06:33 31312 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-10-23 17:06:33 31312 [Note] InnoDB: Using CPU crc32 instructions
2015-10-23 17:06:33 31312 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-10-23 17:06:33 31312 [Note] InnoDB: Completed initialization of buffer pool
2015-10-23 17:06:33 31312 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2015-10-23 17:06:33 31312 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2015-10-23 17:06:33 31312 [Note] InnoDB: Database physically writes the file full: wait...
2015-10-23 17:06:33 31312 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2015-10-23 17:06:34 31312 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2015-10-23 17:06:34 31312 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2015-10-23 17:06:34 31312 [Warning] InnoDB: New log files created, LSN=45781
2015-10-23 17:06:34 31312 [Note] InnoDB: Doublewrite buffer not found: creating new
2015-10-23 17:06:34 31312 [Note] InnoDB: Doublewrite buffer created
2015-10-23 17:06:34 31312 [Note] InnoDB: 128 rollback segment(s) are active.
2015-10-23 17:06:34 31312 [Warning] InnoDB: Creating foreign key constraint system tables.
2015-10-23 17:06:34 31312 [Note] InnoDB: Foreign key constraint system tables created
2015-10-23 17:06:34 31312 [Note] InnoDB: Creating tablespace and datafile system tables.
2015-10-23 17:06:34 31312 [Note] InnoDB: Tablespace and datafile system tables created.
2015-10-23 17:06:34 31312 [Note] InnoDB: Waiting for purge to start
2015-10-23 17:06:34 31312 [Note] InnoDB: 5.6.27 started; log sequence number 0
2015-10-23 17:06:34 31312 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5bed1721-7965-11e5-a520-000c299a432a.
2015-10-23 17:06:34 31312 [Note] Server hostname (bind-address): '*'; port: 3306
2015-10-23 17:06:34 31312 [Note] IPv6 is available.
2015-10-23 17:06:34 31312 [Note]   - '::' resolves to '::';
2015-10-23 17:06:34 31312 [Note] Server socket created on IP: '::'.
2015-10-23 17:06:34 31312 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

从报错上来看,是由于缺少了mysql.plugin表所致的,不过现在连启动都启动不了,怎样创建表呢?所以肯定是其他原因导致的,于时继续网上找继续试,最后找到了这个处理方法,进入mysql安装后的目录scripts执行以下语句:

[root@localhost scripts]# ./mysql_install_db --user=mysql --basedir=/home/mysql5627 --datadir=/usr/mysqldata
Installing MySQL system tables...2015-10-23 17:47:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-10-23 17:47:57 0 [Note] /home/mysql5627/bin/mysqld (mysqld 5.6.27) starting as process 31756 ...
2015-10-23 17:47:57 31756 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-10-23 17:47:57 31756 [Note] InnoDB: The InnoDB memory heap is disabled
2015-10-23 17:47:57 31756 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-10-23 17:47:57 31756 [Note] InnoDB: Memory barrier is not used
2015-10-23 17:47:57 31756 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-10-23 17:47:57 31756 [Note] InnoDB: Using CPU crc32 instructions
2015-10-23 17:47:57 31756 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-10-23 17:47:57 31756 [Note] InnoDB: Completed initialization of buffer pool
2015-10-23 17:47:57 31756 [Note] InnoDB: Highest supported file format is Barracuda.
2015-10-23 17:47:57 31756 [Note] InnoDB: Log scan progressed past the checkpoint lsn 49463
2015-10-23 17:47:57 31756 [Note] InnoDB: Database was not shutdown normally!
2015-10-23 17:47:57 31756 [Note] InnoDB: Starting crash recovery.
2015-10-23 17:47:57 31756 [Note] InnoDB: Reading tablespace information from the .ibd files...
2015-10-23 17:47:57 31756 [Note] InnoDB: Restoring possible half-written data pages 
2015-10-23 17:47:57 31756 [Note] InnoDB: from the doublewrite buffer...
InnoDB: Doing recovery: scanned up to log sequence number 1600607
2015-10-23 17:47:57 31756 [Note] InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed
2015-10-23 17:47:58 31756 [Note] InnoDB: 128 rollback segment(s) are active.
2015-10-23 17:47:58 31756 [Note] InnoDB: Waiting for purge to start
2015-10-23 17:47:58 31756 [Note] InnoDB: 5.6.27 started; log sequence number 1600607
2015-10-23 17:47:58 31756 [Note] Binlog end
2015-10-23 17:47:58 31756 [Note] InnoDB: FTS optimize thread exiting.
2015-10-23 17:47:58 31756 [Note] InnoDB: Starting shutdown...
2015-10-23 17:48:00 31756 [Note] InnoDB: Shutdown completed; log sequence number 1625987
OK

Filling help tables...2015-10-23 17:48:00 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-10-23 17:48:00 0 [Note] /home/mysql5627/bin/mysqld (mysqld 5.6.27) starting as process 31780 ...
2015-10-23 17:48:00 31780 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-10-23 17:48:00 31780 [Note] InnoDB: The InnoDB memory heap is disabled
2015-10-23 17:48:00 31780 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-10-23 17:48:00 31780 [Note] InnoDB: Memory barrier is not used
2015-10-23 17:48:00 31780 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-10-23 17:48:00 31780 [Note] InnoDB: Using CPU crc32 instructions
2015-10-23 17:48:00 31780 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-10-23 17:48:00 31780 [Note] InnoDB: Completed initialization of buffer pool
2015-10-23 17:48:00 31780 [Note] InnoDB: Highest supported file format is Barracuda.
2015-10-23 17:48:00 31780 [Note] InnoDB: 128 rollback segment(s) are active.
2015-10-23 17:48:00 31780 [Note] InnoDB: Waiting for purge to start
2015-10-23 17:48:00 31780 [Note] InnoDB: 5.6.27 started; log sequence number 1625987
2015-10-23 17:48:00 31780 [Note] Binlog end
2015-10-23 17:48:00 31780 [Note] InnoDB: FTS optimize thread exiting.
2015-10-23 17:48:00 31780 [Note] InnoDB: Starting shutdown...
2015-10-23 17:48:01 31780 [Note] InnoDB: Shutdown completed; log sequence number 1625997
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

  /home/mysql5627/bin/mysqladmin -u root password 'new-password'
  /home/mysql5627/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:

  /home/mysql5627/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

  cd . ; /home/mysql5627/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

  cd mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

The latest information about MySQL is available on the web at

  http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

WARNING: Found existing config file /home/mysql5627/my.cnf on the system.
Because this file might be in use, it was not replaced,
but was used in bootstrap (unless you used --defaults-file)
and when you later start the server.
The new default config file was created as /home/mysql5627/my-new.cnf,
please compare it with your file and take the changes you need.

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

然后再运行./mysqld就成功了。
现在大功告成,其实我什么都不懂。
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值