MySQL5.5 部署的一个问题

这篇文章主要介绍了MySQL5.5部署的一个问题,以及解决方案,帮助大家更好的理解和使用数据库,感兴趣的朋友可以了解下

MySQL部署

目前公司部署MySQL是通过平台化操作的,周五的时候,平台暂时出了点儿问题,手上有个需求比较着急,就直接手动的部署了一下,由于好长时间没有部署环境了,竟然有些手生,这里把部署的步骤以及遇到的问题记录下来,希望对大家有所帮助。

1、一般情况下,部署有三种常用的方式,第一种是yum的方式,也就是rpm包,第二种是源码的方式,也就是source code,第三种是二进制包,也就是tar.gz格式的包,解压之后即可,我采用的是第三种方法,部署的MySQL版本是5.5.19版本。

2、首先来看下错误吧:

?

1

2

3

4

5

6

7

8

9

10

启动服务的语句:

/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe –defaults=/data/mysql_4310/my.cnf &

[Note] InnoDB: Waiting for purge to start

[Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.7.16-10 started; log sequence number 0

[Note] Plugin 'FEDERATED' is disabled.

20190621_11:25:41mysqld: Table 'mysql.plugin' doesn't exist

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

[ERROR] unknown variable 'thread_concurrency=8'

[ERROR] Aborting

可以看到,一共报了两个错误,第一个是不能打开mysql.plugin这个表,第二个错误是参数错误,这个参数thread_concurrency无法识别。

对于第二个问题,可以确认是配置文件里面的参数问题,因为我使用的是常规的5.7的配置文件,改了几个参数,所以这个参数很有可能是漏改了,改掉即可。主要是第一个问题,这个时候,我进行了下面的尝试。

3、解决方式

尝试1:尝试重新启动

使用service mysql start的方法:

?

1

2

[root]# service mysql_4310 start

Starting MySQL…..The server quit without updating PID fil[FAILED]/mysql_4310/tmp/mysql.pid).

发现服务还是无法启动,错误日志的输出不变。

尝试2:看到了错误后面的提示,运行mysql_upgrade方法

?

1

2

3

4

5

6

[root bin]# ./mysql_upgrade –protocol=tcp -P4310 -p

Enter password:

Looking for 'mysql' as: ./mysql

Looking for 'mysqlcheck' as: ./mysqlcheck

Running 'mysqlcheck' with connection arguments: '–protocol=tcp' '–port=4310'

./mysqlcheck: Got error: 2003: Can't connect to MySQL server on 'localhost' (111) when trying to connect

看来还是不行,这个时候我严重怀疑是配置文件的问题:。

尝试3:从线上环境中搞来了一个mysql5.5的配置文件,然后重新替换新的配置文件,重新启动:

?

1

2

3

4

5

[root@ mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe –defaults-file=/data/mysql_4310/my.cnf &

[1] 63529

[root@ mysql_4310]# 190621 11:51:37 mysqld_safe Logging to '/data/mysql_4310/log/hb30_web_wechat_answers-121_246.err'.

190621 11:51:37 mysqld_safe Starting mysqld daemon with databases from /data/mysql_4310/data

190621 11:51:40 mysqld_safe mysqld from pid file /data/mysql_4310/tmp/mysql.pid ended

查看错误日志:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

查看错误日志:

[Note] Plugin 'FEDERATED' is disabled.

-5.5.19-linux2.6-x86_64/bin/mysqld: Unknown error 1146

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

InnoDB: The InnoDB memory heap is disabled

InnoDB: Mutexes and rw_locks use GCC atomic builtins

InnoDB: Compressed tables use zlib 1.2.3

InnoDB: Using Linux native AIO

InnoDB: Initializing buffer pool, size = 4.0G

InnoDB: Completed initialization of buffer pool

t specified data file /data/mysql_4310/ibdata1 did not exist:

tabase to be created!

InnoDB: Setting file /data/mysql_4310/ibdata1 size to 1000 MB

physically writes the file full: wait…

in MB: 100 200 300 400 500 600 700 800 900 1000

InnoDB: Data file /data/mysql_4310/ibdata2 did not exist: new to be created

InnoDB: Setting file /data/mysql_4310/ibdata2 size to 100 MB

physically writes the file full: wait…

in MB: 100

og file /data/mysql_4310/innodblog/ib_logfile0 is of different size 0 1073741824 bytes

cified in the .cnf file 0 134217728 bytes!

[ERROR] Plugin 'InnoDB' init function returned error.

[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

[ERROR] Aborting

发现最先面出现了新的错误,提示Innodb 初始化函数返回了错误,无法使用innodb存储引擎。到这里,我开始怀疑是不是初始化的时候,就有错误,导致服务不可用,于是想着重新初始化一遍数据字典,重新起服务,看看行不行。

尝试4:重新初始化数据字典

尝试使用initialize-insecure方法重新初始化,发现失败了。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld

–initialize-insecure

–defaults-file=/data/mysql_4310/my.cnf

–datadir=/data/mysql_4310/data

–basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 &

[1] 7045

[1]+ Exit 2 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld

–initialize-insecure

–defaults-file=/data/mysql_4310/my.cnf

–datadir=/data/mysql_4310/data

–basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64

错误日志还是之前的日志,提示mysql.plugin表不存在,除此之外,还多了一行,如下:

?

1

[ERROR] /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld: unknown option '–initialize-insecure'

于是上官方文档上面查看了–initialize-insecure参数,发现这个参数在mysql5.5版本没有,然后5.5版本的是initialize参数,于是换成这个initialize参数,重新初始化,然后报错如下:

?

1

2

3

[root@ ]/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld –defaults-file=/data/mysql_4310/my.cnf –datadir=/data/mysql_4310/data –basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 –initialize &

[1]+ Exit 2 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld –defaults-file=/data/mysql_4310/my.cnf –datadir=/data/mysql_4310/data –basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 –initialize

此时,查看官方文档,发现MySQL5.5版本的初始化使用的是mysql_install_db命令而不是mysqld命令,而mysql_install_db这个工具不在/usr/local/mysql-5.5.19-linux2.6-x86_64/bin目录中,而在/usr/local/mysql-5.5.19-linux2.6-x86_64/scripts目录下面,于是通过cp命令将其拷贝到指定目录,然后进行初始化,如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

[root@ mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db

–defaults-file=/data/mysql_4310/my.cnf

[root@ mysql_4310]# ll | grep install

[root@ mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db

–defaults-file=/data/mysql_4310/my.cnf

–datadir=/data/mysql_4310/data

–basedir=/usr/local/mysql-5.5.19-linu

[1] 16365

[root@ mysql_4310]#

Installing MySQL system tables…

OK

Filling help tables…

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:

/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root password 'new-password'

/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root -h tk01-devt-mysql-7-200 password 'new-password'

Alternatively you can run:

/usr/local/mysql-5.5.19-linux2.6-x86_64/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 /usr/local/mysql-5.5.19-linux2.6-x86_64 ; /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe &

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

cd /usr/local/mysql-5.5.19-linux2.6-x86_64/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql-5.5.19-linux2.6-x86_64/scripts/mysqlbug script!

[1]+ Done /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db –defaults-file=/data/mysql_4310/my.cnf –datadir=/data/mysql_4310/data –basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64

结果成功。

总结如下:

1、MySQL5.5版本的初始化使用mysql_install_db工具,而不是mysqld工具

2、MySQL5.5版本的初始化使用–initialize参数

以上就是MySQL5.5 部署的一个问题的详细内容,更多关于MySQL 部署的资料请关注钦钦技术栈其它相关文章!

原文链接:https://cloud.tencent.com/developer/article/1533427

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/10822/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-08-11 8:02:07
下一篇 2022-08-11 8:02:14

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!